鉴于架构:
MACHINE_TYPE { machine_type } MACHINE { machine, machine_type } SORT_PLAN { sort_plan, machine_type } SCHEDULE { day_of_week, machine, sort_plan }
和业务规则:
可以为任何分配计划 同一台机器的机器。
如何在SCHEDULE中强制执行 machine 和 sort_plan 引用的元组具有相同的 machine_type ?
如有必要,可以更改架构。
答案 0 :(得分:2)
我在SCHEDULE表上使用插入触发器。
答案 1 :(得分: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 }
这也带来了好处,因为您并不是不可饶恕地为他们适用的机器类型的计划键入规则。您将单独保留此关联,并且如有必要,可以决定使用相同的规则集(对于多个计算机类型的计算机,同一计划...