| 
 | 
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Собственно как сделать сабж? От себя: пишу программу, похожую на коммуникатор. И сразу упреждающие ответы на фразы типа "зачем изобретать, если уже есть" и т.д.: Пишу диплом! БД имеет следующий вид (простите, не знаю, как тут таблицу оформить): Table: users Fields: id, login, pass Как сделать один общий чат, и сделать один-на-один -- проблем нет: Создаю таблицу Messages, имеющую поля: id, from_user_id, to_user_id, datetime Если to_user_id=0 -- значит сообщение для всех. Если to_user_id>0 -- значит это id целевого пользователя. И вот собственно вопрос: Как организовать комнаты на количество больше 2-х человек, и так, чтоб туда можно было приглашать других пользователей, и которые при закрытии окна с данной комнатой, исчезают из этой комнаты? Пишу на Delphi 7 + SQLEXPRESS. Предложения можно и без кода, но главное принцип составления таких "комнат" в БД. Спасибо. Не стесняемся, предлагаем варианты! Обсудим каждый и придем к единому мнению! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 08:48 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Вам сейчас такие варианты предложат, застесняетесь. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 09:23 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  skole, вот веришь, нет, но на другом форуме ни одного, даже смешного решения не предложили. :( Если есть предложения, то я весь внимание... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 09:33 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Добавьте таблицу rooms (если хотите отслеживать, кто из пользователей находится/может писать в какой чат - то + связующую rooms2users), в таблицу messages добавляете внешний ключ room_id. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 13:05 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Кот Матроскин, спасибо! На счет id комнаты не подумал... Дальше уже придумаю. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 13:15 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Klaxглавное принцип составления таких "комнат" в БД. Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо стыкуются. Что там у чата в БД-то хранить? Разве что логи. Posted via ActualForum NNTP Server 1.5 ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 16:48 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Dimitry SibiryakovKlaxглавное принцип составления таких "комнат" в БД. Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо стыкуются. Что там у чата в БД-то хранить? Разве что логи. Руководитель диплома сказал что нужна бд - значит нужна!!! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 10.12.2013, 19:02 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Dimitry SibiryakovKlaxглавное принцип составления таких "комнат" в БД. Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо стыкуются. Что там у чата в БД-то хранить? Разве что логи. Собственно чаты содержат минимум базу пользователей, их данные, настройки в этом чате и т.д... А БД надо сделать, т.к. во-первых, требуется присутствие БД в данном проекте, а во-вторых, я хочу сделать еще и оффлайновые сообщения, как в аське, скайпе и т.д... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.12.2013, 10:59 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  К тому же комнаты будут еще и фиксированные. Со своими названиями. Данные комнаты называют еще конференциями... ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 11.12.2013, 11:01 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  аа ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2016, 17:00 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Для решения подобных задач следует несколько нормализовать БД. В отдельной таблице хранить сообщения (t_messages ) с id автора и датой создания и текстом, а в отдельной таблице (t_msg_mapping ) хранить id сообщения из t_messages и id пользователя к которому сообщение адресуется. То есть если какое-то сообщение было послано троим юзерам, то в t_messages будет лишь одна строка, а в t_msg_mapping будет три строки. Такая схема позволит сделать то, что вам надо. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2016, 17:04 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  GandolfДля решения подобных задач следует ......думаешь, что диплом всё ещё пишется? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 06.09.2016, 13:55 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  ШайтанGandolfДля решения подобных задач следует ......думаешь, что диплом всё ещё пишется? Ну за это время армия должна быть уже пройденным этапом. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 12.09.2016, 02:22 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  советую взять скайп и просмотреть структуру его таблиц в sqlite. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 15.09.2016, 17:49 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Gandolf, спасибо, учту на будущее... DarkMasterШайтанпропущено... думаешь, что диплом всё ещё пишется? Ну за это время армия должна быть уже пройденным этапом. DarkMaster, в армии я не был и не собираюсь. Я тогда воспользовался советом Кота Матроскина и сделал-таки свою программу. Кстати, я потом отказался от SQLExpress и сделал другую программу с использованием MS Access. А-ля outlook локального масштаба. Приложение клиент-серверное. На одном компе ставится сервер, на других клиентская часть. Каждый пользователь может посылать сообщение любому пользователю, который зарегистрирован на сервере. Так же можно отправлять многим пользователям + прикреплять файлы к сообщениям. Все хранится на сервере. При подключении пользователя "почтовый ящик" синхронизируется с сервером. Да, и диплом сдал на отлично. Ivan Durak, а в каком файле скайп хранит базу с чатами? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 28.02.2017, 11:17 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Добрый день, всем! Вопрос забитый, но для меня все же вопрос открытый.Я совсем не мастер и не знаток SQL, можете закидать меня шапками, но мне без Вашей помощи, знатоки SQL, не обойтись. Вопрос такого плана. Нужно спроектитровать БД для чата с доп. условиями по сообщениям: Всем, Лично, Группе. В чат можно вкладывать сообщения. Сделала такую структуру: Users (id, и всякая информация о пользователи) Groups (id,название группы) Teams (id_пользователя,id_группы) Message(id_сообщения,кто отправил,кому отправил,группа). Правильно ли я думаю по составу таблиц, и их структуре? Сильно не бейте, если возможно натолкните на мысль. Заранее огрмное спасибо!!! ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 08:05 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Ну, у сообщения, по идее, должны быть текст и таймстамп, а так - вполне возможный, рабочий вариант. Единственно, сообщения для всех придётся отправлять с "кому отправил = null", но это тоже не сказать чтобы страшно.  Я бы рассмотрел и другой вариант - объединить пользователей и группы в единое дерево с вершиной "все". Это позволит красиво решить вопрос с адресацией сообщения и выпендриться с иерархическими запросами, хотя ценой этого будет невозможность включить одного пользователя в несколько групп - поэтому структура подойдёт, например, для предприятия или учебного заведения, где структура групп естественно иерархична (хотя, впрочем, и там есть потребность в группе, например, "старосты первого курса"). ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 08:25 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  softwarer, спасибо за быстрый ответ! Да, конечно, в таблице Message у меня есть поле text, где я предполагаю сохранять текст сообщения. А зачем поле таймстамп? Извините, может глупый вопрос? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 09:04 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  и еще вопрос.я в таблицу сохраняю время последней сессии пользователя.Не могу сообразить как мне посчитать разницу с текущем временем и если оно больше трех минут, значит пользователь offline. Не судите строго, помогите, кто может, пожалуйста. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 15:12 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я_Новичоки еще вопрос.я в таблицу сохраняю время последней сессии пользователя.Не могу сообразить как мне посчитать разницу с текущем временем и если оно больше трех минут, значит пользователь offline. Не судите строго, помогите, кто может, пожалуйста. не судите строго- посмотрите SQL функции для работы с датой и временем. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 15:28 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Serguei, Возможно у меня что-то с SQL, но datdiff возвращает ошибку ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 15:32 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  DATEDIFF ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 15:36 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я_НовичокSerguei, Возможно у меня что-то с SQL, но datdiff возвращает ошибку возможно у меня тоже что-то не то с хрустальным шаром. Не могу определить какую СУБД вы используете. ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 16.08.2018, 15:47 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Serguei, я же сказала, что я новичок.Зачем же сразу обижать. БД, которую я использую MS SQL ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.08.2018, 14:04 | 
  
  
  
   | 
||
| 
 
Организация многопользовательских чатов в БД 
 | 
|||
|---|---|---|---|
| 
 #18+ 
    
  Я_НовичокSerguei, я же сказала, что я новичок.Зачем же сразу обижать. БД, которую я использую MS SQL а ну тогда это меняет дело. Sergueiпосмотрите SQL функции для работы с датой и временем. пробовали смотреть? ...  | 
|||
| 
 : 
 Нравится:
      
  Не нравится:
      
  
   | 
|||
| 20.08.2018, 14:17 | 
  
  
  
   | 
||
| 
 | 

start [/forum/topic.php?desktop=1&fid=32&tid=1540006]:  | 
    0ms | 
get settings:  | 
    11ms | 
get forum list:  | 
    13ms | 
check forum access:  | 
    4ms | 
check topic access:  | 
    4ms | 
track hit:  | 
    38ms | 
get topic data:  | 
    13ms | 
get forum data:  | 
    3ms | 
get page messages:  | 
    62ms | 
get tp. blocked users:  | 
    2ms | 
| others: | 14ms | 
| total: | 164ms | 

| 0 / 0 | 

На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даете согласие с использованием данных технологий.