Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何实现一个可以自定义行顺序的MySQL表?_Mysql - Fatal编程技术网

如何实现一个可以自定义行顺序的MySQL表?

如何实现一个可以自定义行顺序的MySQL表?,mysql,Mysql,我想在MySQL表中保存一些数据。这些数据有自己的顺序,我可以随意修改。假设我有10排。我想将第10行移动到第5个位置,或者在第2和第3个位置之间插入更多行。然后,使用查看器,我可以按设置的顺序获取数据。我如何实现这样一个表 正如我所想,我会将订单保存为新列中的浮点数。每次我更改订单,比如说,在第5行和第6行之间移动第10行,我会得到第5行和第6行的订单号,并得到它们的平均数量,然后更新第10行的订单列。然后我可以按顺序列获取数据。但我认为这不是个好主意。关于这个问题有什么帮助吗?您不点菜,这毫

我想在MySQL表中保存一些数据。这些数据有自己的顺序,我可以随意修改。假设我有10排。我想将第10行移动到第5个位置,或者在第2和第3个位置之间插入更多行。然后,使用查看器,我可以按设置的顺序获取数据。我如何实现这样一个表


正如我所想,我会将订单保存为新列中的浮点数。每次我更改订单,比如说,在第5行和第6行之间移动第10行,我会得到第5行和第6行的订单号,并得到它们的平均数量,然后更新第10行的订单列。然后我可以按顺序列获取数据。但我认为这不是个好主意。关于这个问题有什么帮助吗?

您不点菜,这毫无意义。实际上,您对条目在该表中的放置顺序不感兴趣。认为它是随机的。 您对希望在中查看条目的顺序感兴趣。为此,您创建了一个附加列,可以随意将其称为“选择顺序”或“优先级”。在这种情况下,您可以存储简单的整数,用于描述希望在中查看条目的顺序

现在,您可以通过更改该顺序列中的数字来“重新排序”条目。在查询时,您向
select
查询添加一个
ORDER BY select\u ORDER
子句,并将按照您想要的顺序接收条目

这是关系数据库模型的标准方法。这并不意味着对于非常特殊的情况,没有其他方法值得研究:

  • 优先级表,而不是在
    SELECT
    查询期间联接的列。对于写操作比读操作多得多的情况,这可能是有意义的。然而,请注意这一点
  • 一种多列方法,适用于您可以对条目进行分组并且只能在此类组内重新排序的情况。这大大减少了您需要更新或重新排序的条目数量
如果我必须更改这些行的顺序,该怎么办?我必须更改我修改的行之后的所有条目。这是正确的。不过,这是一个单一的
UPDATE
查询。不要调用它order@Strawberry是的,实际上,这是一个保留关键字;-)它的性能不是很差吗?总是修改这么多条目?