Mysql table 将主题分配给 class 的设计
Mysql table design for assigning subjects to a class
我打算制作一个 table,我可以在其中将主题分配给 class。我有各种与此相关的任务 table,例如为每个科目插入标记,了解 class 正在学习哪些科目,为每个科目出勤 etc.I 在决定 [=38] 时感到困惑=] 设计。
第一个设计是我将制作 3 列并插入值。但是在这里我必须多次插入相同的 class 例如。
ID - CLASS - SUBJECT
1 - 8th - English
2 - 8th - Maths
3 - 8th - Science
第二个是我将为每个主题制作单独的栏目。但这里的问题是,如果我需要将更多主题分配给 class.
ID - CLASS - SUBJECT1 - SUBJECT2 - SUBJECT3 - SUBJECT4
1 8th English Maths Computer Science
2 9th Maths Computer Science English
请帮助我决定正确的 table 设计。谢谢
多次输入同名的场合会导致一些异常,比如更新异常,删除异常。
为了克服这个问题,您需要在不同的表上定义 类 和主题,然后创建多对多关系。
例如:
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
此设计将帮助您规范化表格。如果您不熟悉术语 "foreign key",我建议您查找有关 "referential integrity" 主题的信息。
我打算制作一个 table,我可以在其中将主题分配给 class。我有各种与此相关的任务 table,例如为每个科目插入标记,了解 class 正在学习哪些科目,为每个科目出勤 etc.I 在决定 [=38] 时感到困惑=] 设计。
第一个设计是我将制作 3 列并插入值。但是在这里我必须多次插入相同的 class 例如。
ID - CLASS - SUBJECT
1 - 8th - English
2 - 8th - Maths
3 - 8th - Science
第二个是我将为每个主题制作单独的栏目。但这里的问题是,如果我需要将更多主题分配给 class.
ID - CLASS - SUBJECT1 - SUBJECT2 - SUBJECT3 - SUBJECT4
1 8th English Maths Computer Science
2 9th Maths Computer Science English
请帮助我决定正确的 table 设计。谢谢
多次输入同名的场合会导致一些异常,比如更新异常,删除异常。
为了克服这个问题,您需要在不同的表上定义 类 和主题,然后创建多对多关系。
例如:
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
此设计将帮助您规范化表格。如果您不熟悉术语 "foreign key",我建议您查找有关 "referential integrity" 主题的信息。