我正在设计一个数据库模型,我有一个问题。
我需要代表这个:
一个订单可以有零个或一个QAP。
订单可以有一个或多个电子报告。
电子报告必须有一个QAP。
为了表示这一点,我有一个模型:
如果orden没有qap,用户必须选择一个才能将其添加到电子报表中。如果订单有QAP,用户无需选择一个将其添加到电子报表中,因为所有电子报表都将有订单的QAP。
用户将收到订单,然后填写电子报告。我对订单不感兴趣,我对用户填写的电子报告感兴趣,QAP有需要填写的信息。
我的问题是如果订单没有QAP,电子报告可能会有不同的QAP。
例如,Order1没有QAP,但它有两个电子报告:
电子报告1有QAP1,并且
电子报告2有QAP2。
这个数据库设计正确吗?我不确定order表和e-report表中的repeat qapid列是否正确。

最佳答案

由于在强制顺序获得qap之前,eReports可以有不同的qap,因此无法使用声明性引用完整性(单独)来表示约束。您现在拥有的模型是您需要使用的,结合一些过程逻辑来强制您的规则,即如果电子端口的顺序有一个qap,则它们必须共享同一个qap。

关于database - 多余的关系?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10671291/

10-10 17:02