相关业务领域中有四种实体类型: USER、COURSE、MODULE和TOPIC。
业务规则是这样的:
- 一门课程包含一个或多个模块,并且
- 每个模块包含一个或多个主题。
所以,我画了下面的实体关系图(ERD):
现在,
- 一个用户可以学习很多课程,并且
- 许多用户可以参加一个课程。_ _
我想保持用户在该课程中的进度,因此我在研究关系中存储了一个主题实例。
关系表示
我的关系表如下所示:
此表中的topic_id
列代表用户需要完成的下一个主题。因此,每当用户注册课程时,我都会获取课程第一个模块的第一个主题并更新行。所以(user_id, course_id)
成为我的复合主键。此外,当用户完成一个主题时,我会获取列表中的下一个主题并更新实例。
问题
我如何用上述约束来表示 ERD 中的关系?
由于存在三种参与实体类型,这是否构成三元关系,如果是,基数应该是什么样的?
任何见解将不胜感激。