我有一个表学生,有以下几个字段。
Id,FirstName,SecondName,Photo,Student_ID
我还有一个名为class_of_2011的表,其中包含字段
Id,FirstName,SecondName,Photo,Student_ID,Subjects
我想从表学生中选择一些特定的学生,并将它们放在表class_of_2011中,但我已经在表学生中有了名字。我在想这样做的唯一方法是将我想要的名字复制到表class_of_2011 ,但由于2012年及以后会有一类课程,我觉得我只是将数据从一张桌子复制到另一张桌子。
在我的情况下重复自己是不可避免的吗?
答案 0 :(得分:2)
看起来这很容易归一化。为什么不让class_of_
表只有student
表的id
列的外键?
StudentId,Subjects
通过这种方式,一个学生记录可以与几个班级相关联,以防有人参与5年计划。
我假设Student_ID
表中的Students
字段是他们的ID号或其他内容,而不是该表的主键。
答案 1 :(得分:1)
学生表 ID,名字,SecondName,照片,student_id数据
主题表 的id,主题
Student_Subjects表 ID,student_id数据,Subject_Id,年份
然后,您可以为学生分配多个科目,为期多年。
答案 2 :(得分:1)
class_of_2011
表应包含students
表的主键,而不包含其他“重复”数据。然后,您可以通过在查询中将两列连接在一起来获得您感兴趣的所有其他列。
答案 3 :(得分:1)
如果可能的话,我会重组数据......就像....
Student Table
ID, Name, Address, other common specific to student
GraduatingClass Table
YearGraduate, StudentID
Enrollment Table
StudentID, ClassID, SemesterID