首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何建模一个课程>节>课程结构,其中的课程可以属于任何一个部分或课程?

如何建模一个课程>节>课程结构,其中的课程可以属于任何一个部分或课程?
EN

Database Administration用户
提问于 2021-05-01 23:41:35
回答 1查看 190关注 0票数 2

我有三个实体:

  1. 课程
  2. 部分
  3. 课程

每个“课程”都由几个“课程”组成。课程中的“课程”,可以分为“部分”,也可以不归为“部分”。

因此,一门课程的内容可以是这样的:

代码语言:javascript
复制
Foo Course:
    Lesson 1
    Lesson 2
    Lesson 3
    Lesson 4

或者像这样:

代码语言:javascript
复制
Bar Course:
    Section 1:
        Lesson 1
        Lesson 2
    Section 2:
        Lesson 3
        Lesson 4

因此,换句话说,一门课程可以直接上“课”,也可以有“节”,而“节”又有“课”。

从另一个角度来看,“课程”可以直接属于“课程”,也可以属于“部分”,而“部分”又属于“课程”。

我很难在关系数据库中实现这个结构。

如果每个“课程”都必须属于“区段”,那就很容易了,我只需拥有一个“课程”表、一个带有"CourseId“列的”区段“表和一个带有"SectionId”列的“课程”表。

但我的设想并不是那么简单。“部分”可能作为“课程”和若干“课程”之间的中间人存在,但也可能没有,在这种情况下,“课程”直接有课程,没有“章节”。

对于如何在关系数据库的上下文中理想地实现这样的结构,我将不胜感激。

谢谢。

EN

回答 1

Database Administration用户

发布于 2021-05-02 02:18:25

一般来说,当我需要在教科书中处理这种情况时,我会对作者“隐藏”一本书的完整结构。因此,对于您的情况,我将有以下结构:

代码语言:javascript
复制
Course
⇢ Section
  ⇢ Lesson

这样,所有的课程至少有一个部分。这为课程作者提供了一定的灵活性,如果他们选择切换到(或从)课程⇢课程到课程⇢节⇢课程模型。它还大大简化了将使用的SQL查询,因为所有内容都是一致的。其他开发人员在被介绍到您的系统时会对此表示赞赏。

免责声明:我以编写教科书和在线学习软件为生,因此我的设计模式可能会因为与公共和私人机构合作的经验而产生偏差。

票数 4
EN
页面原文内容由Database Administration提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://dba.stackexchange.com/questions/290868

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档