mysql处理已知级别的嵌套数据

时间:2013-09-24 19:45:13

标签: mysql database-design

现在我有一个如下所示的层次结构:

.stage
...等级
.....学期
.......主题
.........单元
...........课

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

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

2 个答案:

答案 0 :(得分:1)

为阶段,成绩,学期,...分别制作表格很有意义。

您已经提到了最佳原因,您可以为每个级别添加单个数据。您可以以合理的方式命名外键(即表中的stage_id等级)。而且我怀疑你是否需要一系列与课程或学期混合的科目。

答案 1 :(得分:0)

我会做两件事:

  • 拥有一个主表,其中包含所有级别的所有项目以及公共主键。仅包括层次结构的所有级别中共有的属性。在此处将它们与parent密钥相关联。
  • 提供单独的表特定级别的层次结构所特有的属性。使用主表中的主键作为这些“详细信息表”中的外键。

这可以让您分开您的疑虑。层次结构的结构位于主表中。每个级别的详细信息都在详细信息表中。