如何共享一对多表

时间:2009-07-14 03:08:31

标签: database database-design

我正在尝试创建一个数据库来保存我的地址簿,但我遇到了一个小问题。 我的数据库应该与公司联系人一起保存个人联系人。这是一个条目可以是个人或公司。如你所知,个人和公司都有地址,我希望个人和地址以及公司和地址之间建立一对多的关系。

因此,个人可以拥有许多地址 一家公司可以有很多地址

问题是在尝试设计架构时我不确定这里最好的方法是什么。我应该在地址表中放置两个外键,一个用于individual_Id,一个用于company_Id,还是应该为每个人创建一个链接表来解决和公司之间的关系。

外键听起来很容易但不知道这是否是正确的方法,并且链接似乎是正确的方法,但不知道这是否过度,因为它们主要用于多对多关系。 / p>

思想?

1 个答案:

答案 0 :(得分:4)

有各种方法......我们采用的方法是有一个“名字”表,相当于你的联系人表;地址表和电话号码表。

地址和电话号码表每个都有一个名称表的外键。名称表中有一个“类型”字段,以便我们可以判断该名称是个人,公司,独资经营者等的名称。

电话号码表中也有一个类型字段,因此我们可以判断电话号码是否为工作,家庭,小区等。此外,我们允许用户存储其中一个电话号码的副本名称表用作主要电话号码。