我想知道每个学生选择的课程
假设我们有两个表:学生和课程:
-----student-----
| ID | name | my_lessons |
| 1 | John | 1;3;6 |
| 2 | Jack | 4;5;6 |
| . | . | . |
| . | . | . |
| n | . | . |
----lesson------
| lesson_ID | lesson_name |
| 1 | English |
| 2 | Math |
| . | . |
| . | . |
| m | . |
所以SQL命令是:
$list = student's my_lessons
$result = mysql_query("SELECT * FROM `lesson` WHERE `lesson_ID` IN ($list)");
但是,如果学生/课程数量很大,其表现会很糟糕。 这个案例有更好的桌面设计吗?
答案 0 :(得分:1)
你有多对多的关系(每个学生都可以上一些课,一些学生可以上课)
所以使用另一个表来链接它们。你有学生表
| student_ID | name |
和课程表
| lesson_ID | lesson_name |
和一个注册表(每行显示一名学生上课)
| student_ID | lesson_ID |
现在,您可以找到ID = x的学生的课程,如下所示:
Select lesson_name
from lesson,register
where lesson.lesson_id=register.lesson_id and student_id=x