Нормализация и дизайн - PullRequest
       6

Нормализация и дизайн

0 голосов
/ 02 февраля 2012

У меня есть вопрос дизайна. Есть три таблицы: пользователи, сообщения и предложения. Предложения и сообщения связаны с постом, а пользователи и сообщения связаны с идентификатором пользователя. Теперь пользователи будут публиковать что-то, это может быть что-то, чтобы купить или продать. Теперь пользователи делают предложение купить пост, который публикуется. Один пользователь может предложить купить несколько постов. Таким образом, это означает, что один пользователь может иметь несколько предложений для нескольких сообщений. Как мне добиться, чтобы у пользователя было много предложений для разных постов. Один пользователь может предложить только одну публикацию (это означает, что для одной публикации будет только одно предложение).

Выглядит просто, но я потерян, любой совет был бы оценен.

1 Ответ

0 голосов
/ 02 февраля 2012

Я думаю, что вы описываете отношения следующим образом:

[Пользователи] 1 --- A --- m [Сообщений] 1 --- B --- m [Предложения]

[Пользователи] 1 --- C --- m [Предложения]

Ключ отношения A (один ко многим) - userId;ключ для отношения B (один-ко-многим) - postId;и ключ для отношения (один-ко-многим) C - userId.

Я думаю, вам не хватает отношения C в вашем описании.Это потребует, чтобы предложения имели два внешних ключа;userId и postId.Комбинация userId и postId также может быть первичным ключом для предложений, поскольку эта комбинация всегда должна быть уникальной.

...