我打算制作一张桌子,我可以将课程分配给一个班级。我有与这个表有关的各种任务,比如为每个科目插入标记,知道班级正在学习哪些科目,考虑每个科目等。我对决定桌面设计感到困惑。
首先设计是我将制作3列并插入值。但在这里我必须多次插入相同的类For Eg。
ID - CLASS - SUBJECT
1 - 8th - English
2 - 8th - Maths
3 - 8th - Science
第二个是我将为每个主题单独列。但问题是,如果我需要为课程分配更多科目,那就是问题。
ID - CLASS - SUBJECT1 - SUBJECT2 - SUBJECT3 - SUBJECT4
1 8th English Maths Computer Science
2 9th Maths Computer Science English
请帮我决定正确的桌子设计。感谢
答案 0 :(得分:4)
您需要多次输入相同名称的情况会导致一些异常,例如更新异常和删除异常。
要解决这个问题,您需要在不同的表上定义类和主题,然后创建多对多关系。
例如:
Classes(ID*, ClassName)
Subjects(SubjectID*, SubjectName)
SubjectinClasses(ID*, SubjectID*)
ID is foreign key to Classes
SubjectID is foreign key to Subjects
* = (component of) PRIMARY KEY
此设计将帮助您规范化表格。我建议你寻求关于"参考诚信的信息"如果术语"外键"对你不熟悉。