给定架构:
MACHINE_TYPE { machine_type } 机器{机器,机器类型} 排序计划{排序计划,机器类型} SCHEDULE { day_of_week, machine, sort_plan }
和业务规则:
可以将排序计划分配给相同 machine_type 的任何机器。
如何在 SCHEDULE 中强制执行machine和sort_plan引用的元组具有相同的machine_type?
如有必要,可以更改架构。
给定架构:
MACHINE_TYPE { machine_type } 机器{机器,机器类型} 排序计划{排序计划,机器类型} SCHEDULE { day_of_week, machine, sort_plan }
和业务规则:
可以将排序计划分配给相同 machine_type 的任何机器。
如何在 SCHEDULE 中强制执行machine和sort_plan引用的元组具有相同的machine_type?
如有必要,可以更改架构。
我会在 SCHEDULE 表上使用插入触发器。
您可以更改计划表,使其没有 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 }
这还带来了额外的好处,因为您不会不可撤销地为它们适用于哪种机器类型的计划键入规则。您单独保留此关联,如有必要,可以决定使用相同的规则集(相同的计划,用于不止一种机器类型的机器......