mysql表的列顺序排序_在数据库表中使用排序顺序列

假设我Product在购物网站的数据库中有一个表,用于保存商店产品的描述,价格等。使客户能够重新订购这些产品的最有效方法是什么?

我创建了一个Order用于对记录进行排序的列(整数),但是由于我使用了原始方法来更改每个记录的顺序,因此使我在性能方面有些头疼。一个例子:

Id    Order

5     3

8     1

26    2

32    5

120   4

现在我该怎么做才能将记录的顺序更改ID=26为3?

我所做的是创建一个过程,该过程检查目标顺序(3)中是否有记录,如果没有,则更新行的顺序(ID = 26)。如果有目标顺序的记录,则过程将执行自身发送该行的ID target order + 1作为参数。

这导致在我要更改以腾出空间的每个记录之后更新每个记录:

Id    Order

5     4

8     1

26    3

32    6

120   5

那么一个聪明的人会做什么?

我使用SQL Server 2008 R2。

编辑:

我需要一个项目的order列足以在不涉及辅助键的情况下进行排序。仅订单列必须为其记录指定唯一的位置。

除了所有这些之外,我想知道是否可以实现链接列表之类的功能:使用“下一个”列而不是“订单”列来保留下一个项目ID。但是我不知道如何编写查询以正确的顺序检索记录。如果有人也对这种方法有想法,请分享。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值