首页 > 解决方案 > 多对多多表设计

问题描述

我正在为课程计划一个设计。一个用户可以学习一门课程,一个课程将包含多个目标和多个子目标。(这些目标是相同的,但取决于课程,这将是一个“完整”目标或只是一个子目标)

数据库设计

这会是一个“好”的设计,还是我应该重新考虑?

标签: database-design

解决方案


为了更容易搜索和规范化,您可以执行以下操作:

Course
  CourseID
  Name

Goal
  GoalID
  Name

GoalType
  TypeID
  Value        <-- can be goal or sub-goal

Course-Goal
  CourseID
  GoalID
  GoalTypeID

这样,您只需查询一个表(课程目标)。表应该与您需求中的对象相关。表格不应表达类型或标准。


推荐阅读