实体将其状态作为 FK 存储到状态 table。状态更改后我可以更新 FK 吗?

Entity storing it's status as a FK to a status table. Can i update the FK once the status changes?

我设计了一个 table 'A',其中它的当前状态是一个 属性 这也是一个 FK 到 table 'B'包含状态。在应用程序周期的某个时候,table 'A' 中显示的实体的状态将发生变化,我想知道我是否可以用新状态更新 FK 列,这显然也包含在table 'B'.

这对我来说似乎很正常,但由于我在所有搜索中都没有找到一个 post/article/question,所以我不确定它是 acceptable 还是完全错误的。

由于 table A 具有 table B 的外键,您可以简单地将 table A 上的值更新为 table B 中的新值。

例如,您有
table A: id, name, status_id (外键)
table B: id, status_name

在 table B 你有:

1, "started"
2, "stopped"
3, "suspended"

在 table A 你有:

1, "application_A", 1
2, "application_B", 1

如果要停止 application_A,只需将 status_id 列中的值更新为 2。

相反,这很困难:如果出于某些(上帝遗弃的)原因,您必须将 table B 中的 id 从 2 更新为 4,其中 status_name 是 "stopped" - 只有这样你才需要挖掘 ON UPDATE CASCADE 或类似的措施。