2013-04-30 3 views
0

У меня следующие две таблицы.Foreignkey-Relation для двух таблиц

[Person] 
Id [INTEGER] PRIMARY KEY 
Firstname [VARCHAR] 
Lastname [VARCHAR] 
Birthday [DATETIME2] 

[Address] 
Id [INTEGER] PRIMARY KEY 
Street [VARCHAR] 
ZipCode [INTEGER] 
City [VARCHAR] 
Country [VARCHAR] 

Я не уверен, где поставить внешний ключ.

Лучше ли вводить внешний ключ в таблицу Person или Table-Table? Моя первая идея была бы поставить его в Человек-таблицы, потому что это мой «главный» -стол

+0

Если у человека только один адрес, почему вы помещаете адрес в другой стол? Было бы проще просто добавить поля адреса в таблицу Person. –

+0

Это не соответствовало бы databasenormalation – Tomtom

ответ

4

Это зависит от многого. У человека есть только один адрес или более одного?

  • Если только один, я думаю, что логичнее поставить IdAddress в таблице Person, потому что один человек имеет один адрес, и нет, один адрес имеет один человек

  • Если более чем один, может быть, вы должен создать таблицу соединений с IdPerson и IdAddress.

+0

У человека есть только один адрес. ОК. Спасибо. – Tomtom

0

Добавьте следующее:

[Address] 
PersonId [INTEGER] (References [Person].[Id]) 
+0

Зачем вам это делать? в RL это будет отношение «Person 1: n: n: 1 Address» – WiiMaxx

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