Вы можете изменить таблицу плана, чтобы она не имела MachineType, и добавить новую таблицу с именем machinePlan, в которой есть строка для каждой машины, которая может использовать этот план, с MachineId и PlanId. Затем выведите MachineType для плана из таблицы родительских компьютеров этой новой таблицы, а не из самой таблицы планов.
Наконец, измените таблицу расписания так, чтобы она вернулась к этой новой таблице MachinePlan, а не как у вас сейчас
MACHINE_TYPE { machine_type }
MACHINE { machine, machine_type }
SORT_PLAN { sort_plan}
MACHINE_SORTPLAN {machine, sort_plan }
SCHEDULE { day_of_week, machine_Sortplan }
Это также имеет дополнительное преимущество в том, что вы НЕ вводите безвозвратно правила для плана, к которому они относятся. Вы сохраняете эту связь отдельно и при необходимости можете принять решение использовать один и тот же набор правил (тот же план для машин более чем одного типа машин ...