这是一个方法论问题。假设我有一个表格
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和顺序之间的某些关联。我可以看到使用JSON格式来实现这一点。
我的问题是,使用MySQL和PHP,最好的方法是什么?
order
是一个保留字。你在使用它时需要引用该字段。但是,无论如何,为了保持这个自定义排序字段的同步,你都需要进行很多更新。 - Marc B