我的数据模型中有四个表,即
“学生”表包含以学生id为主键的学生列表。
选修表包含学院提供的以选修课id为主键的选修课列表。
选修值表包含每个选修课的可能值的列表。此表的主键是选项id和值id(复合主键)的组合,因此下一个选项的值从1开始。
学生选修表包含学生id、选修id和值id作为主键。但我被要求做以下改变,
为选项值表而不是复合主键设置id,并在学生选修表中使用主键(Id)。所以选修课表和学生选修课之间的联系就中断了。我想知道前者和后者的最佳方法是什么?
发布于 2013-01-18 07:56:39
第二种方式通常被认为是“更好”的方式,因为它是规范化的,允许选择的值在未来发生变化,而不会受到很大的干扰,并且允许db引擎动态地优化查询。如果值是字符串,那么实际上可以在db中节省一些空间。下面是你所描述的模型:
Student
StudentID
Elective
ElectiveID
ElectiveValue
ElectiveValueID
FK_ElectiveID
Value
StudentElective
StudentElectiveValueID
FK_StudentID
FK_ElectiveValueIDhttps://stackoverflow.com/questions/14394249
复制相似问题