powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация многопользовательских чатов в БД
25 сообщений из 26, страница 1 из 2
Организация многопользовательских чатов в БД
    #38494956
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно как сделать сабж?

От себя: пишу программу, похожую на коммуникатор. И сразу упреждающие ответы на фразы типа "зачем изобретать, если уже есть" и т.д.: Пишу диплом!

БД имеет следующий вид (простите, не знаю, как тут таблицу оформить):
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.

Предложения можно и без кода, но главное принцип составления таких "комнат" в БД.

Спасибо.

Не стесняемся, предлагаем варианты!
Обсудим каждый и придем к единому мнению!
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38494983
Фотография skole
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вам сейчас такие варианты предложат, застесняетесь.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38494991
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
skole, вот веришь, нет, но на другом форуме ни одного, даже смешного решения не предложили. :( Если есть предложения, то я весь внимание...
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38495399
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавьте таблицу rooms (если хотите отслеживать, кто из пользователей находится/может писать в какой чат - то + связующую rooms2users), в таблицу messages добавляете внешний ключ room_id.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38495429
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот Матроскин, спасибо!
На счет id комнаты не подумал...
Дальше уже придумаю.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38495862
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Klaxглавное принцип составления таких "комнат" в БД.
Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо
стыкуются. Что там у чата в БД-то хранить? Разве что логи.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38496089
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovKlaxглавное принцип составления таких "комнат" в БД.
Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо
стыкуются. Что там у чата в БД-то хранить? Разве что логи.

Руководитель диплома сказал что нужна бд - значит нужна!!!
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38496597
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Dimitry SibiryakovKlaxглавное принцип составления таких "комнат" в БД.
Главный принцип таких комнат - БД тут совсем ни к чему. Собственно, "чат" и "БД" слабо
стыкуются. Что там у чата в БД-то хранить? Разве что логи.

Собственно чаты содержат минимум базу пользователей, их данные, настройки в этом чате и т.д...
А БД надо сделать, т.к. во-первых, требуется присутствие БД в данном проекте, а во-вторых, я хочу сделать еще и оффлайновые сообщения, как в аське, скайпе и т.д...
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #38496604
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
К тому же комнаты будут еще и фиксированные. Со своими названиями. Данные комнаты называют еще конференциями...
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Организация многопользовательских чатов в БД
    #39292757
я
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
я
Гость
аа
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39292765
Gandolf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для решения подобных задач следует несколько нормализовать БД. В отдельной таблице хранить сообщения (t_messages ) с id автора и датой создания и текстом, а в отдельной таблице (t_msg_mapping ) хранить id сообщения из t_messages и id пользователя к которому сообщение адресуется. То есть если какое-то сообщение было послано троим юзерам, то в t_messages будет лишь одна строка, а в t_msg_mapping будет три строки. Такая схема позволит сделать то, что вам надо.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39304419
Фотография Шайтан
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
GandolfДля решения подобных задач следует ......думаешь, что диплом всё ещё пишется?
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39307339
Фотография DarkMaster
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ШайтанGandolfДля решения подобных задач следует ......думаешь, что диплом всё ещё пишется?

Ну за это время армия должна быть уже пройденным этапом.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39309834
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
советую взять скайп и просмотреть структуру его таблиц в sqlite.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39411447
Klax
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Gandolf, спасибо, учту на будущее...
DarkMasterШайтанпропущено...
думаешь, что диплом всё ещё пишется?
Ну за это время армия должна быть уже пройденным этапом.
DarkMaster, в армии я не был и не собираюсь. Я тогда воспользовался советом Кота Матроскина и сделал-таки свою программу. Кстати, я потом отказался от SQLExpress и сделал другую программу с использованием MS Access. А-ля outlook локального масштаба. Приложение клиент-серверное. На одном компе ставится сервер, на других клиентская часть. Каждый пользователь может посылать сообщение любому пользователю, который зарегистрирован на сервере. Так же можно отправлять многим пользователям + прикреплять файлы к сообщениям. Все хранится на сервере. При подключении пользователя "почтовый ящик" синхронизируется с сервером.

Да, и диплом сдал на отлично.

Ivan Durak, а в каком файле скайп хранит базу с чатами?
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Организация многопользовательских чатов в БД
    #39688488
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Добрый день, всем!
Вопрос забитый, но для меня все же вопрос открытый.Я совсем не мастер и не знаток SQL, можете закидать меня шапками, но мне без Вашей помощи, знатоки SQL, не обойтись.
Вопрос такого плана. Нужно спроектитровать БД для чата с доп. условиями по сообщениям: Всем, Лично, Группе. В чат можно вкладывать сообщения.
Сделала такую структуру:
Users (id, и всякая информация о пользователи)
Groups (id,название группы)
Teams (id_пользователя,id_группы)
Message(id_сообщения,кто отправил,кому отправил,группа).
Правильно ли я думаю по составу таблиц, и их структуре?
Сильно не бейте, если возможно натолкните на мысль. Заранее огрмное спасибо!!!
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688494
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну, у сообщения, по идее, должны быть текст и таймстамп, а так - вполне возможный, рабочий вариант. Единственно, сообщения для всех придётся отправлять с "кому отправил = null", но это тоже не сказать чтобы страшно.

Я бы рассмотрел и другой вариант - объединить пользователей и группы в единое дерево с вершиной "все". Это позволит красиво решить вопрос с адресацией сообщения и выпендриться с иерархическими запросами, хотя ценой этого будет невозможность включить одного пользователя в несколько групп - поэтому структура подойдёт, например, для предприятия или учебного заведения, где структура групп естественно иерархична (хотя, впрочем, и там есть потребность в группе, например, "старосты первого курса").
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688535
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
softwarer,
спасибо за быстрый ответ!
Да, конечно, в таблице Message у меня есть поле text, где я предполагаю сохранять текст сообщения. А зачем поле таймстамп?
Извините, может глупый вопрос?
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688925
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
и еще вопрос.я в таблицу сохраняю время последней сессии пользователя.Не могу сообразить как мне посчитать разницу с текущем временем и если оно больше трех минут, значит пользователь offline.
Не судите строго, помогите, кто может, пожалуйста.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688938
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я_Новичоки еще вопрос.я в таблицу сохраняю время последней сессии пользователя.Не могу сообразить как мне посчитать разницу с текущем временем и если оно больше трех минут, значит пользователь offline.
Не судите строго, помогите, кто может, пожалуйста.
не судите строго- посмотрите SQL функции для работы с датой и временем.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688943
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serguei, Возможно у меня что-то с SQL, но datdiff возвращает ошибку
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688949
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DATEDIFF
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39688953
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я_НовичокSerguei, Возможно у меня что-то с SQL, но datdiff возвращает ошибку
возможно у меня тоже что-то не то с хрустальным шаром. Не могу определить какую СУБД вы используете.
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39690410
Я_Новичок
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Serguei, я же сказала, что я новичок.Зачем же сразу обижать. БД, которую я использую MS SQL
...
Рейтинг: 0 / 0
Организация многопользовательских чатов в БД
    #39690417
Serguei
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я_НовичокSerguei, я же сказала, что я новичок.Зачем же сразу обижать. БД, которую я использую MS SQL
а ну тогда это меняет дело.


Sergueiпосмотрите SQL функции для работы с датой и временем.

пробовали смотреть?
...
Рейтинг: 0 / 0
25 сообщений из 26, страница 1 из 2
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Организация многопользовательских чатов в БД
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]