2013-06-01 3 views
1

У меня есть ситуация, когда учетные записи могут иметь много телефонных номеров, но номера телефонов могут быть назначены только одной учетной записи. Обычно это считается отношением «один ко многим», но номера телефонов в приложении могут оставаться неназначенными в течение определенного периода времени (что означает, что внешний ключ учетной записи будет отсутствовать до тех пор, пока не будет присвоен другой учетной записи).Могут ли внешние ключи быть нулевыми?

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

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

Редактировать: по существу, у меня есть таблица телефонных номеров и таблица счетов. У учетных записей может быть много телефонных номеров, но номера телефонов могут быть назначены только одной учетной записи в любое конкретное время. Будут случаи, когда номера телефонов НЕ будут назначены учетной записи.

+0

Непонятно, если у вас есть список/банк определенных телефонных номеров, которые могут быть назначены только на одну учетную запись или если телефон может быть любым действительным номером, предоставленным телекоммуникационной компанией. Если бы вы могли уточнить, что бы помочь с предоставлением хорошего ответа. – armitage

+0

@armitage У меня есть список/банк телефонных номеров, которые могут быть назначены только одной учетной записи. Извините, я не уточнил это! – Dre

ответ

4

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

+0

Это была моя первая мысль, но я не знал, было ли плохой практикой иметь «нулевой» внешний ключ. Спасибо за помощь! – Dre

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