wellwellwell Asked: 2018-04-26 13:10:40 +0800 CST2018-04-26 13:10:40 +0800 CST 2018-04-26 13:10:40 +0800 CST 实施双边零对多关系? 772 如何实现以下关系? 一辆车可能属于零个人或多人 一个人可能拥有零辆或多辆汽车 Car理想情况下,我可以有一个联结表,它与表和表都有零到多的关系Person。那是正确的表格组织吗? database-design cardinality-estimates 1 个回答 Voted Best Answer Joel Brown 2018-04-26T15:20:54+08:002018-04-26T15:20:54+08:00 出于实际目的,如果您要与交集表实现多对多关系 - 这是迄今为止最常见的方式,那么您实际上将拥有“零或更多到零或更多”的关系. 关系数据库没有强制一对多关系的子端的声明性引用约束。换句话说,您的CAR表不能有强制执行 0、1 或许多所有者的约束(由 DRI 强加)。DRI 在具有外键的表上工作,而不是在父(引用)表上工作。 这意味着除非您在应用程序中实现一些额外的过程逻辑,否则您将无法强制执行1 或更多,因此您实际上从交集 ( )中获得0、1 或更多。CARPERSONOWNERSHIP 以这种方式实现多对多关系与正确的规范化是一致的。
出于实际目的,如果您要与交集表实现多对多关系 - 这是迄今为止最常见的方式,那么您实际上将拥有“零或更多到零或更多”的关系.
关系数据库没有强制一对多关系的子端的声明性引用约束。换句话说,您的
CAR
表不能有强制执行 0、1 或许多所有者的约束(由 DRI 强加)。DRI 在具有外键的表上工作,而不是在父(引用)表上工作。这意味着除非您在应用程序中实现一些额外的过程逻辑,否则您将无法强制执行1 或更多,因此您实际上从交集 ( )中获得0、1 或更多。
CAR
PERSON
OWNERSHIP
以这种方式实现多对多关系与正确的规范化是一致的。