1

现在我有一个看起来像这样的层次结构:

.stage
......年级
......学期
.......科目
......单元
......课

起初,它们都存储在同一张表中,并存在id parent关系;但是,这 6 个级别中的每个级别都有自己的数据。例如,一个课程有featured_video_id一个主题有一个language_id.

现在我正在考虑创建 6 个表:每个级别一个,并用外键连接它们。我正在考虑所有可能性,并认为专业意见会有所帮助。这种分裂会有什么好处,还是我将来会后悔的事情?

4

2 回答 2

1

为阶段、成绩、学期、......

您已经提到了这样做的最佳理由,您可以为每个级别添加单独的数据。您可以以合理的方式命名外键(即stage_id在成绩表中)。而且我怀疑您是否需要与课程或学期混合的科目清单。

于 2013-09-24T19:54:36.073 回答
0

我会两者兼而有之:

  • 拥有一个主表,其中包含具有公共主键的所有级别的所有项目。仅包括在层次结构的所有级别中通用的属性。在这里用parent钥匙链接它们。
  • 针对特定层次结构级别所特有的属性使用单独的表。在这些“明细表”中使用主表中的主键作为外键。

这使您可以将关注点分开。层次结构在主表中。每个级别的详细信息都在详细信息表中。

于 2013-09-24T20:00:24.800 回答