Схема базы данных сообщений пользователей?

Это, вероятно, очень субъективно, и у меня есть свои мысли по этому поводу, но как можно построить базу данных, которая поддерживает сообщения от пользователя к пользователю (один к одному или один ко многим).

Моя первоначальная мысль состояла в том, чтобы иметь таблицу MESSAGE и таблицу MESSAGE_PARTIES.

СООБЩЕНИЕ будет включать следующие поля: -ID, Тема, Текст, Дата создания, Родительский идентификатор MSG (для ответов).

Поля СЛУЖБЫ СООБЩЕНИЯ включают: -ID, Идентификатор сообщения, Идентификатор отправителя, Идентификатор получателя, Отправлено

Это здравая логика? Я умираю, чтобы узнать, что лучше/более эффективно.


person st4ck0v3rfl0w    schedule 17.07.2010    source источник
comment
Я думаю, что ваша идея хороша. Это вариант многие ко многим, который должен работать хорошо.   -  person Chase Florell    schedule 17.07.2010


Ответы (1)


Вы не совсем правы с MESSAGE PARTIES. Учитывая текущую настройку, вы можете указать несколько отправителей и несколько дат (точнее, вы можете указать несколько комбинаций отправителя, получателя и даты). Это не похоже ни на одну систему обмена сообщениями, с которой я знаком, и, вероятно, не то, что вы хотели (она также не соответствует вашему описанию).

Более подходящая схема поместила бы поля отправителя и "отправлено" в таблицу MESSAGE, а затем только поля ID, Message ID и Recipient ID в таблицу MESSAGE PARTIES.

person Adam Robinson    schedule 17.07.2010