如何设计我的表在以下情况?如何设计数据库表(或休眠实体)
我有一个父实体可以有多个子实体,这是直接的。现在我有另外一个实体外部引用这与两者都有关,这意味着父母可以有多个外部引用和孩子也可以有自己的多个外部引用。我应该如何设计外部引用的表格,我应该将所有表格都保存在一张表中,还是要为父级别引用创建两个单独的表格,并为子级别引用创建两个单独的表格。
第一种方法通过保持在同一个表中的所有引用:
Parent - Parent_Id, other fields...
Child - Child_Id, Parent_Id (Foreign key to parent), other fields...
External Reference - Ref_Id, Parent_Id, Child_Id, other fields
但child_id可以为null父级外部参考因此不能使它的外键。我必须在我的代码中维护该外键而不是DB约束。
第二条本办法由保持在单独的表引用:
Parent - Parent_Id, other fields...
Child - Child_Id, Parent_Id (Foreign key to parent), other fields...
Parent External Reference - Ref_Id, Parent_Id, other fields
Child External Reference - Ref_Id, Child_Id, other fields
如果用户需要引用的两个水平,那么必须寻找到两个表。
什么是最好的方式来实现这一点,所以我可以保留所有引用在一个地方,也建立他们之间的FK关系。
通常,父外部引用和子外部引用中存在足够的差异,它们应该是两个单独的表。但是,您的具体需求可能会有所不同。 –