【发布时间】:2009-06-25 07:21:45
【问题描述】:
我有一个存储在数据库中并通过 ORM(特别是 Django 的 ORM)访问的有序对象列表。该列表由用户任意排序,我需要一些方法来跟踪它。为此,每个对象都有一个“order”属性,用于指定其相对于其他对象的顺序。
我用于在此订单字段上排序的任何数据结构都必须根据请求重新创建,因此创建成本必须便宜。我会经常使用多个对象之间的比较。插入不能要求我更新数据库中的每一行。
我应该使用什么数据结构?
【问题讨论】:
-
我不确定这与作为单链表或双链表实现的优先级队列有何不同,其中整数作为“顺序”属性。是否有一些限制使您的情况与众不同?
-
是否需要将排序顺序存储在数据库中(每个用户)?
-
是的,每个对象的排序顺序将存储在数据库中(1 个对象 == 数据库中的 1 行)。
标签: language-agnostic design-patterns data-structures