与同一实体的多个一对多关系
Multiple One-to-Many Relationships to the Same Entity
我有一个系统需要 orders
,一个订单可以有一个或多个 files
。该文件属于一个订单。
此外,orders
可以有一个或多个 revisions
。对于这些修改,过去是他们可以上传0个或1个文件。所以我有一段 one-to-zero-or-one
关系。
现在事实证明,他们可以上传 0 个或多个文件进行修订。我不确定这通常是如何处理的。我能想到的唯一想法是现在将 revisions_id
添加到 files
table 并允许它可以为空。有了这个,将始终需要 order_id
,以了解它用于哪个订单,如果有 revisions_id
,我将知道它来自修订版,并且能够将它们连接在一起。
像往常一样,我知道案例是视情况而定的。但我想知道这种方法是否会被之前 运行 处理过此问题的其他开发人员视为接受table。
使用您的方法,可能会有 revisions_id
和 orders_id
关系未在 files
table 中维护的数据。
另一种方法是删除 orders
和 files
之间的关系,并保留 files
和 revisions
之间的关系。 orders
table 中插入的每个订单都需要在 revisions
table.
中插入初始修订记录
我有一个系统需要 orders
,一个订单可以有一个或多个 files
。该文件属于一个订单。
此外,orders
可以有一个或多个 revisions
。对于这些修改,过去是他们可以上传0个或1个文件。所以我有一段 one-to-zero-or-one
关系。
现在事实证明,他们可以上传 0 个或多个文件进行修订。我不确定这通常是如何处理的。我能想到的唯一想法是现在将 revisions_id
添加到 files
table 并允许它可以为空。有了这个,将始终需要 order_id
,以了解它用于哪个订单,如果有 revisions_id
,我将知道它来自修订版,并且能够将它们连接在一起。
像往常一样,我知道案例是视情况而定的。但我想知道这种方法是否会被之前 运行 处理过此问题的其他开发人员视为接受table。
使用您的方法,可能会有 revisions_id
和 orders_id
关系未在 files
table 中维护的数据。
另一种方法是删除 orders
和 files
之间的关系,并保留 files
和 revisions
之间的关系。 orders
table 中插入的每个订单都需要在 revisions
table.