如何为学习管理系统(LMS)设计“分层数据”

时间:2012-05-29 22:05:52

标签: mysql django design-patterns database-design

我应该从头开始设计学习管理系统(LMS)。 关于“课程”实体,我有3个级别的信息(课程,主题,Sub_Topic)。想象它就像一棵树。 现在,哪些方法(或更好的方法?)更有用?

1-使用“Adjacency List Model”(http://www.sqlsummit.com/AdjacencyList.htm)或

2-使用3个表,每个表用于其中一个级别,并加入它们以获取记录?

请注意,每个级别都有“单独的属性”,并且与“Quizes”有关联。因此,这些字段中的每个字段都与“测验实体”之间存在一些交互。

P.S。系统将在Django和MySQL中实现..

1 个答案:

答案 0 :(得分:0)

由于树具有明显分离的级别,每个级别都包含不同的数据,因此我采用“3表”方法。

您需要以任何方式加入JOIN,但这样您就可以轻松实施正确的引用完整性(例如,课程可以包含主题但不包含其他方式)。这自然也避免了周期。

我不确定“测验实体”是如何影响这一切的。注意提供更多信息?