-
请教一个数据库字段排序的问题30
有一堆产品,在数据库里有一个字段标识其在网页浏览时的顺序,现在想让拥有者管理其排序显示顺序,
在列表页面允许通过拖拽产品或输入特定顺序值的方式改变其顺序
想到的方法有两个 一个笨办法将传回的id全部按顺序更新
第二个 将排序字段间隔扩大,这样比如第一个插最后个只需将第一个插到最后个数据的后面,对前面
数据没影响,但困难的是 如何知道传回的id那些是需要改变的
需求要允许多个改变 一次提交
第一个办法的涉及到跨页排序就很惨了
第二个办法卡在如何知道要更新那些顺序上
请教高手
问题补充:
第三个办法刚才看到:
swallor :
假设插入在P处(顺序号是不会重复的吧,orderNo=P),一是新插入记录,这时一次update就可以了:update tabName set orderNo=orderNo+1 where orderNo>P;
insert into ..orderNo=P where id=newID;
第二种情况是移动一条记录N到P处,分为N>P和N<P两种情况,也是update就可以了
但是如果一次提交涉及到多个次序变化这样操作还是会有很多sql语句
请教最精简的方法!
问题补充:
今天做出的初步解决方案
在页面用js保留最初的id ,相应的排序值,提交的时候把这两个初始值和改变了位置的id一起传回,比如
顺序 1 2 3 4
初始 a b c d
排序1 d a b c
排序2 a b d c
只要将一新一旧id数组同位置的相比较若不相同则设相应的位置值 更新 完成排序
这种解决方法只适用于不跨页的排序
如果当前页50个 通过输入的方式要排到第60个 就得用插入算法了
看过阿里的拖拽排序 不知道他们怎么实现的
期待高手指点
问题补充:
想找个最有效率的解决方式就比较烦了2008年5月29日 19:32
8个答案 按时间排序 按投票排序
-
分页也可啊 总有开始索引记录吧 在前台javascript计算好 id---neworderno等字串值 到后台在分析 生成对应的sql。
还有就是ajax 移动一次修改一次。2008年6月11日 20:29
-
PS :
the talbe of Your DataBase have to three ID filed:
" ID previousID nextID "
Save the sort order,
when display it, you show by nextId and
the first Node's previousID is null or 0,
the last Node's nextID is null or 02008年6月04日 21:43
-
Sorry, my OS hasn't chinese input tool...........
And excuse my pool Englis..........-_-!
ago, I made a drag sort View by ASP,
find the problem the same to you.
My way is that use Bidirectional circle chain talbe(双向循环链表)
Data structure.
you can have a Google or Baidu2008年6月04日 21:38
-
如果有十万条记录,你还要做这样的功能,就当我什么也没说。
如果在一千条记录以下,可以用啥希表这样的东西来记录改变的就可以了。
最后将啥希表里的数据传给服务器即可。
有主键的情况下,一次更新一两百条记录不算什么,更何况你这个功能用的人少,用的次数少,不用这么伤脑筋阿。
用数组也可以,查找,更新就行。最后将结果传给复务器。2008年6月02日 12:44
-
browser side ,or client side drag drop , handle the drag item and drop item
then request
swap.action?id1=1&id2=2&pos1=5&pos2=6
-> swap(id1,id2,pos1,pos2)
-> update pos= pos2 where id=id1
update pos =pos1 where id = id2
如果只是交换,而没有插入操作的话,这种方法就可以了。2008年5月29日 23:32
相关推荐
OrderByInterceptor,配合PageHelper实现字段排序插件,前端传入要排序的字段和排序规则,插件自动将实体字段映射成数据库字段,不用设置表明前缀。插件通过ResultMap或ResultType读取映射关系,若没有设置,则根据...
易语言数据库字段求和源码,数据库字段求和
List数据字段排序不关注数据库,直接排序
注解javaBean的优点,对应相应的数据库字段
这篇文档详细介绍了数据库的字段命名规范,相信看了之后一定会对你有所帮助!
动态增加数据库字段,如在页面上 填写 字段名、字段类型,通过Java后端,数据库的表就会自动的添加字段。
dede织梦数据库字段祥解
用ADO实现数据库记录排序 用ADO实现数据库记录排序 用ADO实现数据库记录排序
数据库字段图
引言1 范围2 规范性引用文件3 术语和定义4 交通运输数据库字段命名规则5 交通运输数据库字段属性前言本标准按照 GB / T 1. 1—2009 给出的规则
ECShop数据库字段详解
包括了SCCM 2012 R2 以上所有的版本, SQL数据库每一个字段的解释,用于自定义报表.
ecology一键填充数据库字段名,泛微OA一键填充数据库字段名,OA一键填充数据库字段名,个人收集
为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表列字段转化为对应的Java实体类字段。生成的实体类字段格式清晰易读,且符合Java命名规范。通过使用该工具类,可以大大提高开发...
用于自动生成数据库字段的拼音简码或全拼码
T6的数据库字段说明文档,包含数据库中基本是所有的table的说明
ecmall数据库字段
android系统内置数据库字段描述,方便android开发者了解系统数据库结构,各自段的表示(属性),快速来、开发android应用。
java实体类字段自定义-数据库字段和程序实体类属性不一致解决方案.docx