数据库关系表人员和地址

时间:2013-04-21 03:59:59

标签: database relational-database

处理有桌子的情况的适当方法是什么?有人姓名,电话号码和其他信息的人以及第二个地址?

您是应该在Person表中将Address主键指定为外键,还是最好将Person_has_Address与该人和地址的外键一起使用?

我已经开始注意到使用外键约束是非常麻烦的,因为它要求你必须首先输入地址然后如果你使用Person_has_Address,你可以从Person或Address表开始。 / p>

2 个答案:

答案 0 :(得分:1)

人与地址之间的关系通常是多对多的:多人可以在同一地址居住/工作/度假,每个人可以拥有不同的住宅/工作/度假地址。

您应该构建单独的Person和Address表以及与PersonAddressPerson之间具有FK关系的Address表。

答案 1 :(得分:0)

如果Person只能拥有2个地址,那么对此进行建模的简单方法是将Address1IdAddress2Id作为Person表中的外键列。

但如果某人可以拥有多个地址,请创建多对多中间表PersonAddress

PersonAddress
=============

PersonId  (FK to Person.Id)
AddressId (FK to Address.Id)