Имеется в виду супер родитель или как отдельная сущность? - PullRequest
0 голосов
/ 26 февраля 2012

У меня есть таблица person как супер родитель,

id
firstname
lastname
email
telephone
...
...

и user стол в детстве

id
person_id (FK)
password
username
screenname
...
... 

Они должны быть 1: 1 , потому что пользователь не может повторяться дважды. и поэтому электронная почта в строке персонажа не должна повторяться дважды.

Тогда у меня есть message таблица, в которой хранятся сообщения от кого-либо,

id
firstname
lastname
email
telephone
subject
content
...
...

но вы можете видеть, что firstname,lastname, email,telephone дублируется в таблице message.

так что я думаю сослаться на person таблицу, как показано ниже,

id
person_id
subject
content
...

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

поэтому я должен сделать message дочерним от person родителем или они должны быть отдельными сущностями?

или другие предложения по решению этой проблемы.

1 Ответ

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

Вы должны решить, что вы хотите, чтобы ваша система делала. Вы хотите, чтобы старые сообщения отражали чье-то новое имя, или вы хотите, чтобы каждое сообщение имело имя (и другие детали), которые действовали при создании сообщения?

Если вы хотите, чтобы система отображала только текущие личные данные, тогда все ваши сообщения должны быть внешними ключами для ЛИЦА.

Если, с другой стороны, вы хотите, чтобы ваши сообщения всегда выглядели одинаково, даже если отправившее их лицо меняет свое имя, адрес электронной почты или другие данные, вам нужно найти способ сохранить историческая справка. Два очевидных варианта: (1) денормализовать личные данные вплоть до сообщения - как в вашем текущем дизайне или (2) сохранить таблицу истории ЧЕЛОВЕКА со снимками каждой комбинации личных данных с помощью СООБЩЕНИЯ со ссылкой на соответствующую запись истории человека с внешний ключ.

...