2009-07-07 126 views
0

我需要为A级学生开发一个数据库,而且我在分类主题时遇到问题。他们共有13个科目,每个学生可以根据自己的喜好选择13个科目中的许多科目和任意组合。
我该如何处理这个问题?我如何创建一个数据库来保存每个学生的学科组合的记录?需要数据库创建帮助

任何人都可以帮助我吗?

回答

3

制作一张带有学生列表的表格,并制作一张带有主题列表的表格。在另一个表中插入带有学生ID和他们正在学习的主题ID的行。

id | student 

id | subject 

id | subject id | student id 
1

表:受

列:ID,SUBJECT_NAME

表:学生

列:ID,student_name

表:student_subject_map

列:ID, student_id(student.id - 外键),subject_id(subject.id - forei gn键)

0

你会有三个表:一个主题表,存储主题信息;存储学生信息的学生表,以及包含两列,学生ID和主题ID的注册表。

为了让拍摄对象的列表中的学生做的,你执行一个查询是这样的:

SELECT Subjects.name FROM Subjects INNER JOIN Enrolment ON Enrolment.subject_id = Subjects.subject_id WHERE Enrolment.student_id = '(student_id)' ORDER BY Subjects.name ASC 
0

并查看所有科目的学生选择了,从student_subject_map其中

选择subject_id student_id == < student-id>;

用学号的id替换< student-id>。下一个级别是使用table_subject中的id,subject_name匹配来获取主题名称而不是subject_id。 (线索:嵌套选择语句)

+1

不!不是嵌套的select语句。可怕的建议。你想要加入。 – tomfanning 2009-07-07 09:27:02