标题:
关于排列
[打印本页]
作者:
Kitte
时间:
2006-6-5 14:22
标题:
关于排列
数据库:
id name order
1 163 1
2 sina 2
3 sohu 3
4 google 4
id是自动增加的,name为用户输入的,order是排列顺序
当用户将google提前时:
id name order
4 google 1
1 163 2
2 sina 3
3 sohu 4
id和name不能变,是不是每个order都需要更新才行啊?这样服务器会不会累死啊!
有没有好一点的办法呢?
作者:
流浪天崖
时间:
2006-6-5 14:22
如果只是提前的话可以用时间来代替ORDER,这样子只要更新时间就可以了。
作者:
月光飘影
时间:
2006-6-5 14:23
是每个order都需要更新才行
这样服务器还不至于会累死,服务器就是为你服务的嘛
作者:
BonJovi
时间:
2006-6-5 14:23
刚刚想到一种方法。。
更新两次就可以了。。
往前排
第一次就是把小于指定ORDER和大于等于提前到的ORDER值都加一
第二次 就是更新指定记录ORDER
往后排则反其道。
作者:
丢丢
时间:
2006-6-5 14:25
是每个order都需要更新才行
这样服务器还不至于会累死,服务器就是为你服务的嘛
---------如果楼主存的ID很多的,达数万,呢?还是这样子的吗?
作者:
eujf
时间:
2006-6-5 14:26
如果你能保证你的order字段是int型或是float型的
那么,真是太简单了。 :-)
如果是int型。真接将 4 改成 -1 或其它比1小的数就行呀。
如果是float型那真是太方便啦。如果想将4改成移到3前面2后面,那么将4改在2.000001都行呀。
就行一万行数据也不会引响速度。
作者:
Teresa
时间:
2006-6-5 14:30
呵呵!
“如果楼主存的ID很多的,达数万,呢?还是这样子的吗?”
当然啦!请注意到楼主的说法:“当用户将google提前时”
既然是“用户”的操作,那么他可以在将google提前后再将163提前。动作是不确定的、不可预知的
作者:
风雨声中
时间:
2006-8-1 11:27
数字的ID可以随便改,负数都行。还可以加入小数。
欢迎光临 编程开发论坛 (http://bbs.lihuasoft.net/)
Powered by Discuz! 6.0.0