2

给定架构:

MACHINE_TYPE { machine_type }
机器{机器,机器类型}
排序计划{排序计划,机器类型}
SCHEDULE { day_of_week, machine, sort_plan }

和业务规则:

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

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

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

4

2 回答 2

2

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

于 2008-12-11T14:14:45.330 回答
1

您可以更改计划表,使其没有 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 }

这还带来了额外的好处,因为您不会不可撤销地为它们适用于哪种机器类型的计划键入规则。您单独保留此关联,如有必要,可以决定使用相同的规则集(相同的计划,用于不止一种机器类型的机器......

于 2008-12-11T14:25:01.267 回答