我想创建一个学校数据库,我被困在中间。我有以下表格
现在我想谈谈老师和学生之间的关系。这里的问题是
我想把学生和他的科目联系起来。
另外,对于8std部分A& B(std +节=类),英语是8c的第三门学科,它是固定的德语,但8D可以两者兼具。如果这些数据也能以某种方式关联到同一个表中,那就太好了。这是一种类似于允许上课的科目。
我也想要副教师到科目和班级(X老师取英语8c)
发布于 2011-11-06 17:49:10
通过使用以下表格,您的问题似乎很容易解决:
学生
教师
类
主题
课程
course_attendants
如您所见,如果主题是可选的或强制的,则在表subject中定义约束。一门学科可以由教师在一门课程和一个学年里教授。最后,如表course_attendants所述,学者可以参加课程。若要检查学生过去是否已选修过某门课程,您必须只检查表course_attendants和课程。要设计一个课程只能在已经访问另一个课程的情况下才能参加,请将所需的课程id放在表主题的字段requires_subject_id中。
发布于 2012-01-11 02:27:49
学生与学科、教师和学科之间的关系应该存储在不同的"course_relationships“表中。对于必修科目,请将SQL添加到用于创建学生的函数中,该函数随后为每个必修科目创建关系。类似于:
// after whatever function you're using to create users
$compulsory_classes=array();
// for sixth grade
$compulsory_classes['6'] = array();
// for sake of example, say English course ID is 1
$compulsory_classes['6'][] = 1;
$user_class = $user->class;
foreach($compulsory_classes[$user_class] as $current_class) {
mysql_query("INSERT INTO relationships (user_id, course_id)
VALUES (" . $user_class . ", " . $current_class . ")");
}然后使用单独的表单或函数来添加非强制性的类。
发布于 2012-01-12 19:52:45
正确安排课桌的关键是要认识到,学生对科目的学习是一种多对多的关系。因此,您需要一个中间表来建立关系。
因此,您有一张供学生使用的表格:比如Student_ID、FirstName、LastName等。
第二个科目表:例如Class_ID,SubjectName,年级,选修课等
然后有一个中间表,如StudentSubjectLinks,它只有以下三个字段;
LinkID:中间表的ID。
Student_ID:它被设置为链接到“学生”表中的Student_ID的外键。
Class_ID:它被设置为链接到Subject表中的Class_ID的外键。
https://stackoverflow.com/questions/8028924
复制相似问题