0 0

请教一个数据库字段排序的问题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个答案 按时间排序 按投票排序

0 0

分页也可啊 总有开始索引记录吧 在前台javascript计算好 id---neworderno等字串值 到后台在分析 生成对应的sql。

还有就是ajax 移动一次修改一次。

2008年6月11日 20:29
0 0

同问,请高手来解答

2008年6月05日 13:31
0 0

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 0

2008年6月04日 21:43
0 0



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 Baidu

2008年6月04日 21:38
0 0

如果有十万条记录,你还要做这样的功能,就当我什么也没说。
如果在一千条记录以下,可以用啥希表这样的东西来记录改变的就可以了。
最后将啥希表里的数据传给服务器即可。
有主键的情况下,一次更新一两百条记录不算什么,更何况你这个功能用的人少,用的次数少,不用这么伤脑筋阿。
用数组也可以,查找,更新就行。最后将结果传给复务器。

2008年6月02日 12:44
0 0

需求要允许多个改变 一次提交
没注意看这个,
主要步骤在浏览器端了。
有难度

2008年5月29日 23:43
0 0

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
0 0

想不出有什么好的方法,帮__顶

2008年5月29日 23:13

相关推荐

    数据库字段命名规范

    * 所有字段的第一个单词的首字母要小写,且一般不超过三个英文单词。 * 第二个及或后面单词的首字母要大写。 * 能够用缩写的尽量用缩写。 * 字段名要与字段类型相符。 * 默认的数据要写注释,在说明栏标注默认数据...

    易语言数据库字段求和

    比如,如果你有一个名为“sales”的表,字段名为“amount”,你可以构建如下的SQL语句:“SELECT SUM(amount) FROM sales”。 3. 使用“执行SQL”命令来运行这个查询。此命令会返回一个结果集,其中包含求和的结果...

    C# 作的动态定义数据库字段

    总结来说,"C# 作的动态定义数据库字段"是一个面向初学者的示例,展示了如何利用C#的元数据和反射能力来创建一个灵活的数据库系统,允许用户在运行时自定义数据结构。这个项目对于学习C#编程、数据库操作以及Web开发...

    JTT 1058-2016 交通运输信息系统 数据库字段命名及属性定义1

    一个字段的属性定义直接关系到数据的准确性和处理方式,因此合理定义字段属性对于数据库的稳定性与数据安全至关重要。 综上所述,JTT 1058-2016标准的实施,为交通运输行业的信息系统数据库管理提供了一套科学、...

    用ADO实现数据库记录排序

    ADO是Microsoft开发的一个数据访问接口,它使得程序员可以轻松地在各种数据库系统中进行数据操作。 首先,理解ADO的基本构成至关重要。ADO包括一系列的对象,如Connection、Command、Recordset、Field等。其中,...

    数据库字段名转换成Java字段名

    - 工厂模式:可以创建一个字段名转换工厂,根据输入的数据库字段名,返回对应的Java字段名对象。 - 模板方法模式:定义一个转换模板,子类可以重写具体转换逻辑。 7. **注解驱动**: 在某些情况下,如使用JPA,...

    OrderByInterceptor,配合PageHelper实现字段排序插件

    OrderByInterceptor,配合PageHelper实现字段排序插件,前端传入要排序的字段和排序规则,插件自动将实体字段映射成数据库字段,不用设置表明前缀。插件通过ResultMap或ResultType读取映射关系,若没有设置,则根据...

    动态添加数据库字段.md

    动态增加数据库字段,如在页面上 填写 字段名、字段类型,通过Java后端,数据库的表就会自动的添加字段。

    SCCM数据库字段大全

    本资料包“SCCM数据库字段大全”涵盖了SCCM 2012 R2及其后续版本的所有SQL数据库字段,旨在帮助管理员理解每个字段的含义和用途,以便于创建高效的自定义报表。这些报表可以帮助用户深入了解设备状态、软件分发效果...

    java实体类字段自定义-数据库字段和程序实体类属性不一致解决方案.docx

    例如,实体类中有一个字段名为 "userName",而数据库表中的字段名为 "USER_NAME"。这种情况下,需要实现实体类字段的自定义,以便与数据库字段保持一致。 二、解决方案 解决 Java 实体类字段自定义问题的思路是...

    一键填充数据库字段名.rar

    标题 "一键填充数据库字段名.rar" 提供的信息表明,这个压缩包可能包含一个或多个工具或脚本,用于自动化填充数据库的字段名称。这通常是为了提高数据录入的效率,尤其是在数据库设计阶段或需要大量手动输入字段信息...

    数据库字段图

    数据库字段图

    数据库字段属性1

    "数据库字段属性详解" 数据库字段是数据库管理系统中最基本的组成部分,它定义了数据在数据库中的存储结构和约束关系。在本文中,我们将详细介绍数据库字段属性的概念、类型、 constraint 和 indexes 等知识点。 ...

    自动读取mysql数据库字段并自动生成java属性和set和get方法

    在压缩包子文件的文件名称列表中,"FieldToRead--属性读写"可能表示的是一个实现此功能的具体文件,或者是一个示例,用于展示如何读取数据库字段并生成Java属性的读写方法。该文件可能是代码示例、配置文件或者是...

    android系统内置数据库字段描述

    在Android系统中,数据库是一种重要的数据存储方式,尤其对于开发者来说,理解系统内置数据库的字段描述...因此,深入研究和理解Android系统内置数据库的字段描述对于任何Android开发者来说都是一个基本且重要的技能。

    Delphi数据库字段替换工具附源码..rar

    这个“Delphi数据库字段替换工具附源码..rar”文件显然包含了一个用Delphi编写的数据库字段替换工具的源代码,这为学习和理解Delphi数据库编程提供了宝贵的资源。 1. **Delphi编程基础**: Delphi基于Pascal语言,...

    Java实体类字段生成工具类-将数据库表列字段转为Java实体类驼峰字段

    为了解决这个问题,开发了这个Java实体类字段生成工具类。 2、该工具类可以将数据库表列字段转化为对应的Java实体类字段。生成的实体类字段格式清晰易读,且符合Java命名规范。通过使用该工具类,可以大大提高开发...

    金蝶K3数据库字段和表结构

    金蝶K3数据库字段和表结构,用于对金蝶数据库底层的修改维护,以及查找相关数据使用的。

    C#对数据库记录进行排序查询

    例如,如果我们有一个员工表(Employees),包含字段如EmployeeID、Name和Salary,我们可以编写一个SQL查询来按照工资(Salary)进行排序: ```sql SELECT * FROM Employees ORDER BY Salary ASC -- 升序排列 ...

Global site tag (gtag.js) - Google Analytics