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

为重复多次的1对多关系建模

  •  0
  • thebenman  · 技术社区  · 6 年前

    我有三张桌子 Initiative , Category Forecasts .所有表中的关系都是1对多。

    倡议 可以有多个 类别 可以有多个 预测

    倡议 可以是周期性的,也可以不是基于 类别 名字可以不同。例如,对于重复出现的 倡议 它将有一套具体的 Categories 这将对所有人重复 Initiatives 重复出现的类型。

    每年的月份,预测将按类别进行。 这就是现在的情况,小提琴也是如此 here

    enter image description here

    这种方法的问题是,对于特定类型的每个倡议,类别名称重复了很多次,尽管它是相同的。

    另一个问题是,当我们需要添加一个特定类别的计划时,我们必须维护另一个包含所有计划和所有类别的AllInitiative表,以便最初将它们映射到 类别 桌子之后,可以将预测添加到新添加的计划和类别中。

    我如何更好地设计这个结构,使我有一个 AllInitiative 表中包含所有类型的计划,且仅一次 AllCategory 表中列出了每种计划的类别。

    并使用另一个表跟踪特定类型的计划和类别,而不在特定类型计划的每个实例上重复类别名称。

    1 回复  |  直到 6 年前
        1
  •  0
  •   Raul Cuth    6 年前

    你可以拥有 Initiative 表,所有倡议一次,另一个 Category ,对于1-n关系,您需要一个链接表 Initiative_Category 在其中,您有主动权和类别的外键。

    在该表中,您可以使用相应的类别存储每个计划。

        +---------------+-------------------+
        | initiative_id |    category_id    |
        +---------------+-------------------+
        |       1       |         2         |
        |       1       |         3         |
        +---------------+-------------------+