Python Django中的SQL-“0”;订单“;表中记录的字段-由用户定义,可以是任意的,不断更改-我如何做到这一点?
所以我有一个应用程序,用户在其中创建一个列表。用户还可以订购列表中的项目,并可以从列表中添加和删除项目。如果用户先注销,然后从另一台设备登录,则需要按照与之前相同的顺序显示列表 到目前为止,我只是通过在表中的记录中添加一个名为“order”的字段来解决这个问题。假设我有一个800项的清单。如果用户删除项目4,我不能简单地从表中删除该记录——我还必须更新796条记录以反映这些项目的新顺序。如果用户随后添加了一个项目,我不仅要向表中添加一条记录,还要更新每个项目,使其订单数量高于添加新项目的位置Python Django中的SQL-“0”;订单“;表中记录的字段-由用户定义,可以是任意的,不断更改-我如何做到这一点?,python,sql,django,postgresql,Python,Sql,Django,Postgresql,所以我有一个应用程序,用户在其中创建一个列表。用户还可以订购列表中的项目,并可以从列表中添加和删除项目。如果用户先注销,然后从另一台设备登录,则需要按照与之前相同的顺序显示列表 到目前为止,我只是通过在表中的记录中添加一个名为“order”的字段来解决这个问题。假设我有一个800项的清单。如果用户删除项目4,我不能简单地从表中删除该记录——我还必须更新796条记录以反映这些项目的新顺序。如果用户随后添加了一个项目,我不仅要向表中添加一条记录,还要更新每个项目,使其订单数量高于添加新项目的位置 我
我的方法对我来说既昂贵又幼稚。有什么聪明有效的方法来解决这个问题吗?有什么想法吗?谢谢。您应该实现一个等效的,其中每个节点都有一个指向其上一个和下一个节点的指针
- 插入节点只是更新上一个/下一个指针,因此不需要更新任何其他内容
- 删除节点只是更新上一个/下一个指针(通过使它们彼此指向),因此不需要更新任何其他内容
因此,您需要两个字段
previous
和next
来代替一个order
字段,这两个字段指示有序列表中的上一个和下一个节点。您应该实现一个等价的,其中每个节点都有一个指向其上一个和下一个节点的指针
- 插入节点只是更新上一个/下一个指针,因此不需要更新任何其他内容
- 删除节点只是更新上一个/下一个指针(通过使它们彼此指向),因此不需要更新任何其他内容
因此,除了一个
order
字段之外,您还需要两个字段previous
和next
,用于指示排序列表中的上一个和下一个节点。相关:相关:哇,太好了。我真不敢相信我没有想到。根据你需要做的其他事情,一个单独的链接列表可能也足够了。哇,太好了。我不敢相信我没有想到这一点。取决于你还需要做什么,一个单独的链接列表可能也足够了。