2013-04-30 83 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