我想在SQL中为我的用户分配课程列表。用户可能有不同数量的课程。我环顾四周,并没有真正找到一种好的方法。我在设计数据库方面没有很多经验。 每个用户只是具有唯一用户ID的表上的一行信息。 列表中的每个课程都必须有一个字段,用于说明其所属的当前成绩,讲师ID和用户ID。甚至更多。 我试图避免将所有内容都放在一排带有一排插槽甚至可能是空字段的行中。有没有一种方法可以将整个表分配给用户?这样每一行都可以是一门课程?
答案 0 :(得分:1)
我建议使用关联表,这意味着使用多对多关系。例如这样的结构:
表 学生(学生ID,姓名,姓氏)
表 课程(course_id,名称,..)
表 学生课程(学生ID,课程ID,教师ID,已注册日期,已通过日期,成绩...)
StudentCourse是学生表和课程表之间的连接,因为一个学生可以拥有许多课程,并且在一门课程中可以招收许多学生。
我还建议您进一步阅读数据库规范化,关联表以及有关多对多关系的this文章。