与同一实体的多个一对多关系

时间:2016-04-04 04:02:03

标签: mysql database database-design database-normalization database-relations

我的系统需要orders,订单可以有一个或多个files。该文件属于一个订单。

enter image description here

此外,orders可以有一个或多个revisions。对于这些修订,过去他们可以上传0或1个文件。所以我有one-to-zero-or-one关系。

enter image description here

现在事实证明他们可以为修订上传0个或多个文件。我不确定这通常会如何处理。我能想到的唯一想法是将revisions_id添加到files表并允许它可以为空。有了这个,order_id将始终是必需的,知道它的顺序,如果有revisions_id,我会知道它来自修订版,并且能够将它们连接在一起。< / p>

enter image description here

像往常一样,我知道案件是情境性的。但我想知道这是否是其他开发人员可以接受的方法,这些方法之前遇到过这个问题。

1 个答案:

答案 0 :(得分:0)

通过您的方法,可以获得revisions_id表中未保持orders_idfiles关系的数据。

另一种方法可以是删除ordersfiles之间的关系,并建立filesrevisions之间的关系。插入orders表中的每个订单都需要在revisions表中插入初始修订记录。