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

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_idorders_id 关系未在 files table 中维护的数据。

另一种方法是删除 ordersfiles 之间的关系,并保留 filesrevisions 之间的关系。 orders table 中插入的每个订单都需要在 revisions table.

中插入初始修订记录