鉴于这样的关系:
TAXI - >有 - > ROUTE - >由 - >驱动ASSIGNED_TRANSPORT
从路由到assigned_transport,零,一个或多个的关系(即,具有可选参与的一对多连接, OR 是一对多的(即,强制参与而不是选择参与)?
也就是说,我不理解可选参与,你是否可以正确地说当出租车公司新分配一条路线时,它很可能在给定的时间点没有分配给它的已分配的运输路线(当然后来肯定会)。这是你如何正确地争论可选参与?
基本上我很困惑如何判断两个实体之间是否存在可选参与...
我想相反,你也可以争辩说,如果assigned_transport表中有一个实体实例,你会期望一个assigned_transport实例被分配给一个特定的路由(否则,分配就没有意义了)如果它没有路线则运输!)...因此assigned_transport是强制性的,而不是可选的?
所以我不确定哪一个在逻辑上是正确的......
我是否在正确的轨道上?
感谢您的协助。
答案 0 :(得分:1)
概念/逻辑模型与物理模型之间存在差异。
在物理模型中,一对多的子端几乎总是可选的,如果没有其他原因,您可以插入子项,直到由于声明性参照完整性约束而保持父项。可以有例外,但通常在插入任何子项之前插入父项。因此,如果仅仅是一个短暂的时刻,父母没有孩子。
在概念或逻辑模型中,重点是记录您的业务规则。您的业务规则不需要考虑您的RDBMS的技术限制。因此,如果您的业务规则表明父母在没有孩子的情况下毫无意义,您可以自由地建立一对一或多对关系。
就你的例子而言,很难说,因为我不了解你的商业规则。如果没有人驾驶ROUTE,这条路线确实存在吗?这是您在构建概念和逻辑模型时必须决定的。当您构建物理模型时,您几乎肯定会因为您的DRI而选择ASSIGNED_TRANSPORT参与。