关于学校数据库设计的问题

时间:2011-01-28 19:31:31

标签: database-design

一个好的数据库设计对于学校的等级架构会是什么。

基本上,我有以下内容:

enter image description here

问题在于试图获得成绩的平均值。我不能说出头三个月所有科目的平均成绩。

有关分级系统的良好数据库设计的任何建议吗?

2 个答案:

答案 0 :(得分:1)

在数据库中包含平均成绩的字段是错误的数据库设计。这些数据是多余的(因为您已经拥有了在其他地方计算此值所需的所有数据),因此不应存储。主要的数据库设计规则永远不会存储您可以计算的内容。这导致您在更新一个时需要更新两件事。在这种情况下,您需要在更新用于计算它们的等级时更新averages表。

但是,您可能想要制作一个计算平均值的视图。视图基本上是由选择查询填充的表。要创建视图,首先要创建一个选择查询,该查询返回您想要的平均值以及您想要用来查找此平均值的数据(很可能是IDSubject或IDStudent)。然后查找如何在数据库中创建视图,它应该能够从Select查询创建视图。

答案 1 :(得分:0)

在主题,成绩和分数之间添加课程表。

  • 班级表引用了一个科目,一个年级和一个三个月。
  • 分数表引用的是课程而不是主题。

然后,您应该在每个三个月和每个年级汇总和平均分数时没有问题。