在数据库的设计中,经常使用单列排序法 ,设计 一个int的字段来做排序字段。
如:seq字段
查询时,可直接对seq字段排序即可。
对原有的数据中,插入一个字段时,会导致插入字段后方的所有数据的seq字段都需要变更,
如:
在紧跟着序号id=1 的后面添加一条数 id=6 ,seq = 2 ,这时候 序号id= 2、3、4、5需要变更为seq=3、4、5、6
数据维护起来就不太容易了。
现:将seq字段换成double,
还是在id=1的后面添加一条数据id=6,这时的seq取值(1-2)之间就OK了,通常取中数即可,
这样新增的数据即为:id=6、seq=1.5 同样查询时对seq排序即可实现。
问题:
虽然取中数可以实现需求,但是循环在id=1的后面添加数据的时候会出现小数值会增长过快,很快会达到上限长度值。
仅仅添加了8个数,小数位数已经达到8位之多,也就是说每插入一条数据,小数位数都会添加1位。
这时就可以取近似中位数