本质上,您建议的第二个解决方案是链接列表。在数据库级别实现的链表通常不是一个好主意。要检索
n元素列表,您将需要
n数据库访问权限(或使用复杂的查询)。在性能方面,检索O(n)中的列表效率极低。
在常规代码中,链表用于获得比数组更好的插入性能(无需四处移动所有元素)。在您的数据库中,仅通过两个查询更新所有元素并不那么复杂:
UPDATe item.order = item.order + 1 FROM item WHERe order > 3INSERT INTO item (order, ...) VALUES (3, ...)
我记得看到一个实现了所有功能的可重用应用程序和一个不错的管理界面,但是我现在找不到它…
总而言之,除非您有很好的理由不要使用解决方案1,否则请远离解决方案2。



