2013-04-30 85 views
0

我有以下兩個表。兩個表的Foreignkey關係

[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或Address-Table會更好嗎? 我的第一個想法是把它放到與人表,因爲這是我的「主」 - 表

+0

如果一個人只有一個地址,爲什麼你把地址放在不同的表中?將地址字段添加到Person表格會更簡單。 – 2013-04-30 16:01:54

+0

這將不符合數據庫規範 – Tomtom 2013-04-30 18:03:45

回答

4

這要看情況。一個人只有一個地址或多個地址?

  • 如果只有一個,我認爲它是更多的邏輯,把IdAddress Person表中,因爲一個人有一個地址,而不是一個地址有一個人

  • 如果不止一個,也許你應該使用IdPerson和IdAddress創建一個連接表。

+0

一個人只有一個地址。好。謝謝。 – Tomtom 2013-04-30 14:17:24

0

添加以下內容:

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

你爲什麼要這樣做?在RL中它將成爲'人1:n:n:1地址'關係 – WiiMaxx 2013-04-30 13:33:50