Вопрос дизайна базы данных с окнами сообщений - PullRequest
1 голос
/ 19 августа 2010

У меня есть вопрос, и я не уверен, как лучше его разработать.

В основном, есть пользователи. Каждый пользователь может иметь окно сообщения, а каждое окно может иметь несколько сообщений.

Проблема в том, что есть несколько специальных окон сообщений, в том числе «Новый» и «Корзина». Пользователь должен иметь эти два поля.

У меня были некоторые идеи о том, что можно сделать. Одна из моих идей состояла в том, чтобы в каждом окне сообщения было поле с записью его типа (перечисление «new», «trash» или «other»). Но это не заставляет их иметь те поля, которые я бы предпочел.

Я мог бы также, чтобы у каждого пользователя были поля, конкретно относящиеся к его специальным полям (поэтому в таблице user были бы такие поля, как newBox и trashBox). Конечно, если они необходимы, то таблицы user и user_messageBox будут взаимосвязаны, что вызовет очевидные проблемы.

Тогда я мог бы сделать это многими ко многим, если таблица окна сообщений не относится к пользователям, так что была бы другая таблица для соотнесения этих двух со многими ко многим. Но я не хочу отношений «многие ко многим», поэтому они ничего не решают!

Ответы [ 2 ]

0 голосов
/ 19 августа 2010

Почему вы не используете поле message_box_type,

Я думаю, вы должны заставить пользователей использовать оба типа окон сообщений, используя логику приложения.

В идеале было бы две таблицы, таблица сообщений с идентификатором внешнего ключа message_box_id, который связывает ее с другой таблицей message_box. Таблица message_box, в свою очередь, имеет поле message_box_type в дополнение к другим полям. Логика приложения будет гарантировать, что две записи message_box двух типов 'new' и 'trash' будут созданы при регистрации / создании пользователя

0 голосов
/ 19 августа 2010

Если вам нужно только одно окно сообщения на пользователя, то вызывайте «new» и «trash» как-нибудь еще, например, состояние. Пусть это будет полем сообщения. (Вам также потребуется поле для пользователя или, что то же самое, окно сообщения в каждом сообщении.)

Это заставляет вас думать нестандартно (!) И может дать вам другие идеи относительно того, как использовать это поле, если вы выберете: «Помечено», «Важно», «Спам» и т. Д.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...