例如,学校有五万名学生,每个学生有十个科目,每个科目都有分数和排名分数和排名,每次考试都会更新这个时候是考虑把表建成 一个学生一条数据,十个科目分数字段和十个排名字段还是考虑,每个科目一个条数据呢?一个学生十条数据为以后的读取和更新,哪一种结构效率比较好能明白吧

解决方案 »

  1.   

    学生表
    科目表
    分数表 (有学生id,科目id等)排名按查询来取,不用表来存。
      

  2.   


    科目的数量不会再增加了,排名这个是我举的例子,就是科目的一个属性,由分数通过公式决定的某一属性但是我现在很纠结,字段多update对应起来很麻烦,但如果每个科目一条数据,每次读学生的全部科目成绩都要循环表还有个问题,我增加列和增加表的行数,哪个比较费
      

  3.   


    学生表:ID ……
    科目表:ID ……
    考试表:ID …… Name、Description、Date
    分数表 (ExamID、StudentID,CourseID ……)
    ----
    历史统计表 ……需要指出的是“排名”这个字段不应该出现在基础数据表中,因为它是派生字段,可以通过查询来获取。
    但是有些情况下,基础数据可能被破坏,如误删、篡改等,为了保险或记录历史统计信息,可以再新建一个统计报表。
      

  4.   

    呃这样的问题,就是update的时候比较麻烦,可能科目的属性有两三个,不只是排名和分数,而update的时候只更改其中的一两项