有一个包含以下字段的参考表:-
id;
- 记录的序号(例如 1,2,3,...,n);
- 记录名称;
该目录在数据库中使用。“记录名称”必须有一定的顺序。通过对“记录序列号”
字段
进行排序来提供序列。
SITUATION
编写了一本手册(初始:option-0)。
该目录用于其他表。在工作过程中,需要在链表中间增加一个表项,从而重新分配低于该表项的序号。
问题。
如何解决这个问题呢?
那些。手动重新输入新的序列号,我认为这是不正常的。
还是有另一种方法来解决这种情况?
当然,还有另一种方法。为什么不将序列号乘以 100 或 1000?
100
200
300
400
如果您需要在它们之间添加一条记录,则不会有任何问题.. 直到某一点 ;-)
或者使用时间戳字段作为排序。但是话又说回来.. 您将不得不编辑笔,或编写一个函数,以便条目位于必要的笔之间。
如果目录不经常更改,则可以使用插入新元素
UPDATEUPDATE position = position+1 WHERE position>=:positionINSERT ... (position, ...) VALUES (:position, ...)更改目录编辑界面也可能有意义,
而不是手动输入位置,而是提示用户移动元素。
如果不是移动和插入来实现两个元素的位置交换,您将不必为用户操作更新整个目录。