存在一个数据表,有学生编号,成绩,成绩名次三个字段(其他字段不描述),现在往数据表里插入了100名同学及其成绩和计算好的名次。如果我在客户端修改了任何一个同学的成绩,那么现在存在数据库的表里的名次就可能发生变化。
请教的问题是:如何才能高效的更新所有名次。
请教各位大哥,小弟感谢了!
按成绩排序 生成名次 更本就不需要名次这个字段 在取的时候在页面里面加逻辑就可以了
如果有特殊需求例如取第几名的学生 非要名次并更新的话
就可以分为及时更形和定时间更新一次
及时更新可以考虑用触发器(更新一次刷一次排名) 不过效率估计高不了
或定时更新 用作业 每天核实一遍排名(今天显示的是昨天的排,当时的排名不是最新的)
一楼分析的不错。另外,如果数据量不大,你完全可以通过视图来解决。
确实不需要名次的字段。在基本数据上建立试图。试图中可以生成名次列,或者直接按照总分或者其它的方式排序。来得到排名顺序。
一楼分析很好。要么就使用触发器,但是主要的话,逻辑反而变得复杂了。
在样本空间基本有序的情况下,建议使用局部二分法排序