维护引用完整性

发布于 2024-07-10 07:45:30 字数 387 浏览 9 评论 0原文

给定架构:

MACHINE_TYPE { machine_type }
MACHINE { machine, machine_type }
SORT_PLAN { sort_plan, machine_type }
SCHEDULE { day_of_week, machine, sort_plan }

和业务规则:

排序计划可以分配给任何 相同 machine_type 的机器。

如何强制在 SCHEDULE 中,machinesort_plan 引用的元组具有相同的 machine_type

如有必要,可以更改架构。

Given the schema:

MACHINE_TYPE { machine_type }
MACHINE { machine, machine_type }
SORT_PLAN { sort_plan, machine_type }
SCHEDULE { day_of_week, machine, sort_plan }

and the business rule:

A sort plan can be assigned to any
machine of the same machine_type.

How do I enforce that, in SCHEDULE, the tuples referenced by machine and sort_plan have the same machine_type?

The schema can be changed, if necessary.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

我要还你自由 2024-07-17 07:45:31

我会在 SCHEDULE 表上使用插入触发器。

I'd use an insert trigger on the SCHEDULE table.

最后的乘客 2024-07-17 07:45:31

您可以更改计划表,使其不具有 MachineType,并添加一个名为 machinePlan 的新表,该表对于可以使用该计划的每台计算机都有一行,并包含 MachineId 和 PlanId。 然后从这个新表的父计算机表而不是从计划表本身派生计划的 MachineType。

最后,更改计划表,以便它的 FK 返回到这个新的 MachinePlan 表,而不是您当前拥有的表。

MACHINE_TYPE { machine_type }
MACHINE { machine, machine_type }
SORT_PLAN { sort_plan}
MACHINE_SORTPLAN {machine, sort_plan }
SCHEDULE { day_of_week, machine_Sortplan }

这还有一个额外的好处,因为您不会不可撤销地键入计划所适用的机器类型的规则。 您将单独保留此关联,并且可以在必要时决定使用同一组规则(同一计划,对于多种机器类型的机器......

You could change the plan table so it does not have MachineType, and add a new table called machinePlan, that has a row for every machine that can use that plan, with the MachineId and the PlanId. Then derive MachineType for a plan from this new table's parent machine table instead of from the plan table itself.

Last, change the schedule table so that it's FK is back to this new MachinePlan table, instead of as you currently have it

MACHINE_TYPE { machine_type }
MACHINE { machine, machine_type }
SORT_PLAN { sort_plan}
MACHINE_SORTPLAN {machine, sort_plan }
SCHEDULE { day_of_week, machine_Sortplan }

This also has added benefit in that you are NOT irevocably typing the rules for a plan on which machine type they apply to. You are keeping this association separately, and can, if necessary, decide to use the same set of rules (the same plan, for machines of more than one machine type...

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文