在设计用于管理多个实体的地址和联系人的表结构时,我有点困惑。
在我的情况下,我有四种类型的实体,它们有多个地址和联系。
我为4个实体创建了4个父表。 但是在创建地址和联系人表时,我正在考虑为所有父实体创建一个地址和一个联系表,并通过实体密钥链接它们。如下所示。
Id
ContactType
ParentId
EntityKey
Value
这是一个好主意,还是应该为一种类型的实体创建4个单独的子表。我所有的子表都具有相同的结构。 请建议我。我不确定要遵循哪种设计。
答案 0 :(得分:0)
案例1:很快就会有数百万的数据。经常使用查询,它可以在多个地方使用。任何父子的表结构都可能发生变化。然后
多个父母和多个孩子 原因:当表格增长如此之快,那么你就在桌面上进行分区。那么为什么不从一开始就保持单独的表格。另外你会有一个较少的条件。
案例2:当表的增长正常时,对它的查询使用很少,并发性较少。然后就可以了 一个父母和一个孩子表也
------------根据网址引用--------- 我告诉你的完全一样,
实体=包含其他详细信息的地址表以及AddressTypeID和ParentID 我只是说不需要进一步的规范化,比如为AddressType创建表和使用AddressTypeID引用。由于AddressTypeID最大可达4-5。插入时你可以传递硬编码值,如1,2
假设我想加入地址表与Entity1然后我的查询
来自地址A.ParentID = P.EntityID1上的内连接Entity1 E. 其中AddressTypeID = 1
类似地
来自地址A.ParentID = P.EntityID2上的内连接Entity2 E. 其中AddressTypeID = 2
等等。
假设在另一个例子中,你可以在AddressType中有n个类型 那么你必须像在那个url中那样创建单独的表
答案 1 :(得分:0)
我创建了所有父表和一个相应的子表用于地址,一个用于联系。我没有在父实体和子实体之间创建任何关系。我通过另一个表创建了关系,在那里我做了所有父实体和子实体之间的交叉引用。我添加了一个检查约束,它将检查只有一个父实体id被填充而其他父实体id列是null。我还添加了一个唯一索引以避免重复条目。通过这种方式,我也可以保持参考整合。
答案 2 :(得分:0)