【发布时间】:2018-01-31 13:00:45
【问题描述】:
我们需要创建一个教程类型的应用程序,其中会有主题列表,每个主题都有子主题。
用户可以注册一个主题,并浏览子主题并将子主题标记为“已完成”。我们选择使用MySql 关系数据库。
所以。通常有 3 个主表,
- 用户
- 主题
- 子主题
我们计划继续采用这种方法,为“用户和主题”制作映射表,即“user_topics”,其中包含列为user_id , topic_id, is_enrolled
另一个跟踪子主题完成状态的映射表,可能是'user_sub_topics',其中包含user_id、sub_topic_id、topic_id、is_completed
这是设计数据库的最佳方式吗?还是可以做任何其他工作?
这是我们获取数据所需的几个查询
- 如果用户已完成所有子主题,主题列表将显示带有已完成标签的主题列表(加入查询会有所帮助)
- 主题详情页面也会显示已完成子主题的列表
请推荐
【问题讨论】:
标签: mysql database-design relational-database