如何在这里避免循环依赖

How to avoid circular dependency here

我有两个table;为了简化示例,我们称它们为 lawnmowerlawn.

直观的解决方案:

这给出了循环依赖。避免这种情况的最佳解决方案是什么?我目前正在考虑 responsiblefor table 带有草坪和割草机的外键。然而,这使得多个割草机可以负责同一个草坪,这在以前是不可能的。

首先,您需要一个交汇点 table,因为这基本上是一个 n-m 关系。这 table 每个割草机和每个草坪都会有一行(我会称之为 LawnmowerLawns 或类似的东西)。

现在处理要点:

  • 第一个需要在这个 table 中为每个割草机排成一行。这可以在大多数数据库中使用触发器来处理。可能还有其他解决方案。
  • 第二个由联结点处理 table。
  • 第三个是通过在 table 中有一个标志来表示每个草坪的 "primary" 割草机来处理的。这可以通过触发器或其他机制强制执行。
  • 第四个需要一个触发器(关系上的计数通常需要触发器)。