database-design - 多对多多表设计
问题描述
我正在为课程计划一个设计。一个用户可以学习一门课程,一个课程将包含多个目标和多个子目标。(这些目标是相同的,但取决于课程,这将是一个“完整”目标或只是一个子目标)
这会是一个“好”的设计,还是我应该重新考虑?
解决方案
为了更容易搜索和规范化,您可以执行以下操作:
Course
CourseID
Name
Goal
GoalID
Name
GoalType
TypeID
Value <-- can be goal or sub-goal
Course-Goal
CourseID
GoalID
GoalTypeID
这样,您只需查询一个表(课程目标)。表应该与您需求中的对象相关。表格不应表达类型或标准。
推荐阅读
- typescript - 导入 OpenAPI 规范生成的类型
- google-sheets - 谷歌表格 - 从两个单独的列交叉连接/笛卡尔连接
- java - 使用 @Query 时出现奇怪的 Spring JPA 行为
- javascript - 在 React 中,如何将选定的下拉数据传递给状态
- python - 如何在 python 中组合两个打印函数?
- python - 如何清理此密码生成器?我正在努力使我的程序更易于阅读
- c - C/GCC - 查找/显示结构定义
- php - 登录后如何将用户引导到不同的页面?
- python - 调用 eval() 时出现“NameError: name 'numpy' is not defined”
- ruby-on-rails - Rails 6 Minitest 文件上传