所以我有三个主要实体。机场,客户和供应商。
其中每一个都将有多个联系人,我需要与每个人联系。
所以他们现在是用我的方式设置的。
我有以下表格..。
AirportCustomerVendor然后我有一个联系人表和一个xref机场,客户,供应商.
我对此表示怀疑,并在考虑为每个人提供一个联系人表。
这些设计中的任何一个都有缺点吗?
发布于 2018-08-20 15:25:54
对我来说,决定因素是实体与“真理的一个版本”的重复。如果一个真实世界的人可以是多个其他实体的联系人,那么您就不希望将这个人存储在多个联系人表中,因为您必须在多个地方维护对他/她的属性的任何更改。
如果你把同样的“乔·史密斯”放在AirportContacts和VendorContacts中,那么有一天,当你看到他所在的城市是“丹佛”在一张桌子上,“波士顿”在另一张桌子上时,你会认为哪个是事实?
但是,正如注释中所提到的,如果一个联系人只能与另外三个实体中的一个相关联(您称之为“类型”),那么将它们放在单独的表中是最有意义的。
还有第三种情况。说“乔·史密斯”可以是机场和供应商的联系人。但是如果说他有一些财产,比如他的性别和年龄,不管他被考虑的是哪种“类型”,这些属性都是相同的,但也可能有一些属性,比如电话号码,或者职位/职称,可能取决于“类型”。也许他以机场供应商的身份使用了一部手机,而用了一部不同的电话作为供应商的联系人。此外,也许有一些性质,适用于一种类型的接触,不适用于其他类型。在这些情况下,我将研究一种混合方法,在单个联系人表中保留公共属性,在它们自己的类型相关表中使用“类型”-specific属性。这些与类型相关的表将是具有FKs返回联系人表和与“类型”相关的主实体表(供应商、客户或机场)的桥接表。
发布于 2018-08-23 18:09:35
我目前所拥有的..。不要介意某些数据类型。只是放置快速占位符..。

https://stackoverflow.com/questions/51932837
复制相似问题