|
Организация многопользовательских чатов в БД
|
|||
---|---|---|---|
#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?fid=32&msg=39309834&tid=1540006]: |
0ms |
get settings: |
10ms |
get forum list: |
13ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
90ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 16ms |
total: | 218ms |
0 / 0 |