2015-02-02 5 views
0

Я пытаюсь создать контактную информационную систему, но я очень зациклен на моделировании базы данных.Как написать контактную информацию базы данных

То, о чем я думаю сегодня, - это стол с человеком с рудиментарной информацией о человеке (имя, имя, фамилия, ssn, пол, дата рождения и т. Д.). Them Я думаю о создании новых таблиц для таких вещей, как адреса, адреса электронной почты, компании, номера телефонов, псевдонимы, псевдонимы и т. Д. И т. Д.

Создание этих файлов с помощью FK на главную запись пользователя не является проблемой. Но, например, для адресов электронной почты. У пользователя будет несколько адресов электронной почты для нескольких случаев использования. Один, который является частным, и тот, который будет несколько связан с компанией.

Я удивляюсь, есть ли разумный способ подключения электронного адреса компании к записи компании в таблице компаний?

Я думаю, у меня мог бы быть FK от адреса электронной почты до таблицы компании, но что тогда, если ссылка не должна принадлежать компании, а скорее какой-либо другой организации? Как организация или псевдоним или адрес электронной почты, который используется только в определенных ситуациях?

Такая же ситуация будет obv. также применяются для таких вещей, как номер телефона, почтовый адрес или адрес и т. д.

ответ

1

Вы не можете моделировать такие вещи, как «у человека есть адрес электронной почты, который связан с примерно ни о чем». Вы должны быть конкретными в отношении отношений.

Если вы хотите иметь возможность добавлять определенные отношения, не изменяя существующие таблицы (вы должны), то лучше не добавлять FK с адреса электронной почты в компанию. В конце концов, «адрес электронной почты» лица не знает, что он имеет отношение к компании, потому что некоторые адреса электронной почты могут иметь другие отношения. Это не относится к тому, что адрес электронной почты принадлежит компании, а дополнительный аспект, который вы хотите добавить.

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

+0

Не совсем уверен, как делать таблицы отношений для этого. Должен ли я иметь таблицу с тремя FK? один для человека, а один для электронной почты и один для компании? – espenfjo

+1

Если несколько человек могут использовать один и тот же адрес электронной почты, то да. В противном случае было бы достаточно двух FK, один на адрес электронной почты и один на компанию или что угодно. И, конечно, FK от электронной почты к человеку. Я бы пошел за последним за счет необходимости повторять общие адреса электронной почты. –

Смежные вопросы