这更像是一个方法论问题。说我有一张桌子
id int auto_increment primary key,
name text not null
我有一些我想以某种任意方式订购的条目。我可以创建一个界面,允许我更改名称的顺序,就像它们出现在某些页面上一样。当我读出表格的条目时,它们将根据我的选择进行排序。我看到了三种可能的方法。第一种方法是添加一个字段
order int not null
当我更改订单时,我将不得不更新每一行,或者至少每一行的排序高于我正在更改的最低订单。这似乎是错误的方法,因为它需要在 for 循环中执行 SQL 语句。第二种方法是创建另一个表,通过 id 链接
id int not null
order int not null
但我会在这里遇到同样的问题。如果我添加了一个名称并想将它们放在首位,我将不得不更改每一行中的订单条目。我可以看到第三种可能的方法,即将 id 和 order 之间的一些关联存储在单个列中,甚至存储在平面文件中。我可以看到使用 JSON 格式来执行此操作。
我的问题是这个。使用 MySQL 和 PHP 执行此操作的最佳方法是什么。