sql - 试图用获得的分数映射学生

标签 sql database database-design data-modeling

我有以下表格:

Student(Student_ID(PK), FName, LName,...)
Subject_details(Subject_code(PK), Subject_Name)
Subjects_Enrolled(Student_ID,Subject_Code)

我的问题是: 我可以有下面的表格吗

Marks_Details(Student_ID,Subject_Code,Marks_Obtained)

该表是否违反了数据库的任何规则或类似的规则?我的要求是有一个表格来映射学生在特定科目中获得的分数,这就是我想出的。这是正确的还是有其他方法可以做到这一点? 如果您要投反对票,请告诉我原因。 谢谢。

最佳答案

该数据模型看起来不错。您只需使用每条记录中包含的一些附加信息(标记)设置多对多关系。

一个建议是重命名 Subject_Details表到 Subject .我认为这种措辞使关系更加清晰。

另一个建议是重命名 Subjects_EnrolledEnrollment只需添加 Marks_Obtained此表的列。这将消除对 Marks_Details 的需要因为这两个表基本上包含相同的信息。为什么要对这些数据进行两次存储和维护?这个想法是将记录插入 Enrollment当学生注册类(class)然后更新 Marks_Obtained列在类(class)完成后的稍后日期。

关于sql - 试图用获得的分数映射学生,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19112818/

相关文章:

php - 错误消息:Array ( ) 警告:mysqli::query() 期望参数 1 为字符串、对象

具有特定基数的 sql 查询(多对多)

php - SQL:获取结果,但添加从数字 2000 开始的列

mysql - 将列排序规则转换为表/数据库默认值

mysql - 什么是 MySQL 中状态的最佳列类型

mysql - 比较内部消息传递的两个数据库设计

mysql - Plesk 12 MYSQL 数据库 1,8GB 备份需要

database - dataStore 和数据库有什么区别?

sql - 数据库设计问题。指向不同表的列值

mysql - 在这种情况下是否绝对需要多对多关系?