我已经设置了一个包含以下列标题的数据库,ID,POI,filename。 我相信我必须设置一个主键。目前是ID。但是,客户可能决定更改其数据库的顺序,例如将ID 20移动到数字2.但由于它是主键,因此无法复制。 我试图添加一个额外的列,我做了自动增量,然后使ID列成为主键,但是,我被告知自动增量列也应该是主键。 因此,如何设置一个允许行移动的数据库?
答案 0 :(得分:3)
ID 不应该改变。永远。它标识数据。
将自动增量ID保留为主键,并使用它来识别记录。
听起来客户要求手动订购/分拣价值。这是一个与标识符不同的概念,应该是一个单独的列。或许像SortOrder
这样的东西。排序顺序不需要 是唯一的,并且实际上可以是任何整数值。所以简单地说就是......一个整数列。
对于适用手动指定排序顺序的用例和业务操作,ORDER BY
该列。