代码之家  ›  专栏  ›  技术社区  ›  Dave

保持参照完整性

  •  2
  • Dave  · 技术社区  · 16 年前

    给定模式:

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

    商业规则:

    排序计划可以分配给 同一机器类型的机器。

    如何在调度中强制 机器 索尔特计划 有一样的 机械式 ?

    如果需要,可以更改架构。

    2 回复  |  直到 16 年前
        1
  •  1
  •   Charles Bretana    16 年前

    您可以更改计划表,使其不具有machinetype,并添加一个名为machine plan的新表,该表为可以使用该计划的每台计算机都有一行,包括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 }
    

    这还有一个好处,那就是你不能直接为一个计划输入规则,在这个计划中,这些规则适用于哪种机器类型。您将单独保留此关联,并可以在必要时决定对多个机器类型的机器使用相同的规则集(同一计划)。

        2
  •  2
  •   Will    16 年前

    我将在调度表上使用插入触发器。