首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >联系人数据库设计

联系人数据库设计
EN

Stack Overflow用户
提问于 2018-08-20 14:22:13
回答 2查看 1.4K关注 0票数 0

所以我有三个主要实体。机场,客户和供应商。

其中每一个都将有多个联系人,我需要与每个人联系。

所以他们现在是用我的方式设置的。

我有以下表格..。

  • Airport
  • Customer
  • Vendor

然后我有一个联系人表和一个xref机场,客户,供应商.

我对此表示怀疑,并在考虑为每个人提供一个联系人表。

  • 机场和AirportContacts
  • 客户与CustomerContacts
  • 供应商与VendorContacts

这些设计中的任何一个都有缺点吗?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-08-20 15:25:54

对我来说,决定因素是实体与“真理的一个版本”的重复。如果一个真实世界的人可以是多个其他实体的联系人,那么您就不希望将这个人存储在多个联系人表中,因为您必须在多个地方维护对他/她的属性的任何更改。

如果你把同样的“乔·史密斯”放在AirportContactsVendorContacts中,那么有一天,当你看到他所在的城市是“丹佛”在一张桌子上,“波士顿”在另一张桌子上时,你会认为哪个是事实?

但是,正如注释中所提到的,如果一个联系人只能与另外三个实体中的一个相关联(您称之为“类型”),那么将它们放在单独的表中是最有意义的。

还有第三种情况。说“乔·史密斯”可以是机场和供应商的联系人。但是如果说他有一些财产,比如他的性别和年龄,不管他被考虑的是哪种“类型”,这些属性都是相同的,但也可能有一些属性,比如电话号码,或者职位/职称,可能取决于“类型”。也许他以机场供应商的身份使用了一部手机,而用了一部不同的电话作为供应商的联系人。此外,也许有一些性质,适用于一种类型的接触,不适用于其他类型。在这些情况下,我将研究一种混合方法,在单个联系人表中保留公共属性,在它们自己的类型相关表中使用“类型”-specific属性。这些与类型相关的表将是具有FKs返回联系人表和与“类型”相关的主实体表(供应商、客户或机场)的桥接表。

票数 0
EN

Stack Overflow用户

发布于 2018-08-23 18:09:35

我目前所拥有的..。不要介意某些数据类型。只是放置快速占位符..。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51932837

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档