我有三个表Initiative
,Category
和Forecasts
。在所有表中,该关系是一对多。
Initiative
可以有多个Category
可以有多个Forecasts
Initiative
可以重复出现,也可以不重复使用,Category
名称可以不同。例如,对于重复的Initiative
,它将具有一组特定的Categories
,该集合将针对所有Initiatives
的重复类型进行重复。
预测将在一年中的几个月内进行分类。 目前就是这样,小提琴是here
这种方法的作用是,对于每种特定类型的计划,尽管类别名称相同,却会重复多次。
与此有关的另一个问题是,当我们需要添加特定类别的计划时,我们将必须维护具有所有计划和所有类别的另一个AllInitiative表,以将它们最初映射到Category
表。之后,可以将预测添加到新添加的计划和类别中。
如何更好地设计此结构,以使我有一个AllInitiative
表,其中所有类型的计划都恰好一次,而AllCategory
表中则包含每种计划类型的类别列表。
并使用另一个表来跟踪特定类型的计划和类别,而不必在特定类型的计划的每个实例之间复制类别名称。
答案 0 :(得分:0)
您可以拥有一个Initiative
表,其中所有计划一次,Category
另一个计划,对于1-n关系,您需要一个链接表,例如Initiative_Category
主动性和类别的外键。
在此表中,您可以将每个计划与相应的类别一起存储。
+---------------+-------------------+
| initiative_id | category_id |
+---------------+-------------------+
| 1 | 2 |
| 1 | 3 |
+---------------+-------------------+