首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL数据库结构的良好实践

MySQL数据库结构的良好实践
EN

Stack Overflow用户
提问于 2016-03-04 14:15:02
回答 3查看 50关注 0票数 1

我正在研究一个管理学生上课情况的系统。我创建了两个表:学生(student_id,name,mail.)当然(course_id,姓名,讲师.)。现在我的问题是,我应该如何记录哪些学生参加了哪些课程?

我是否应该为每门课程创建一个这样的结构: course_id,讲师,student_1,students_2,student_3.

或者也许有一个更好的解决方案来建立这种关系?发送

更新:我应该提到学生可以选修几门课程

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2016-03-04 14:24:07

由于您的表之间有许多到多个关系(每个学生可以选修多门课程,每门课程可以由多名学生选修),所以您需要一个中间表,该表包含两个表的主键。

代码语言:javascript
复制
coursestudent(course_id,student_id)

使用相应表的外键。

票数 3
EN

Stack Overflow用户

发布于 2016-03-04 14:22:55

如果一个学生可以有多个课程,并且一个课程属于多个学生,则取决于您要创建一个包含id、course_id(外键)和student_id(外键)的表。

如果一个学生只能有一个课程,但是一个课程可以有多个学生来学习,那么您可能希望将course_id作为外键添加到学生中。

票数 2
EN

Stack Overflow用户

发布于 2016-03-04 14:27:09

你需要两张桌子

代码语言:javascript
复制
students (student_id, studentName, student.....)

courses (course_id, student_id, courseName, course....)

在这里,学生与student_id的课程相关,courses表中的course_id与之相关。

编辑:

代码语言:javascript
复制
course_id   student_id      courseName
    c12         s34             DB
    c12         s35             DB
    c43         s86             OS
    c65         s45             PHP
    c57         s86             OS
    ...         ...             ...
    ...         ...             ...
    ...         ...             ...
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35798255

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档