用于将主题分配给类的Mysql表设计

时间:2015-05-22 12:13:35

标签: php mysql database

我打算制作一张桌子,我可以将课程分配给一个班级。我有与这个表有关的各种任务,比如为每个科目插入标记,知道班级正在学习哪些科目,考虑每个科目等。我对决定桌面设计感到困惑。

首先设计是我将制作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

请帮我决定正确的桌子设计。感谢

1 个答案:

答案 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

此设计将帮助您规范化表格。我建议你寻求关于"参考诚信的信息"如果术语"外键"对你不熟悉。