大家好!我正在制作一个简单的待办事项应用程序。我停止了一个问题。我想允许用户更改列表中元素的顺序(将其保存到数据库中)。
最初的想法之一是:
创建一个列( 订单 ),并在每次用户执行操作时进行更改。 当我们有一些记录时,这是好的,但是数量更大的是什么? 我的想法:
id | name | order
1 | lorem| 1
2 | ipsum| 2
3 | dolor| 3
当用户将“dolor”更改为第一个位置时,脚本必须更新所有记录。 这不是我认为的最佳解决方案。 任何人都可以分享如何优化的知识? 我将不胜感激!
答案 0 :(得分:0)
您可以使用名为/Users/sa/Documents/Dissertation/first_defiation.py:160: VisibleDeprecationWarning: using a non-integer number instead of an integer will result in an error in the future
learning_benefit = int(np.int((1 + gamma_online_learning) * x[0]) * exp(np.int(bivariate_distribution[x[0] - 1, x[1] - 1])))
或next
的列。这称为链表,或者如果同时使用两者,则称为双链表。参见:
https://en.wikipedia.org/wiki/Doubly_linked_list
在数据库表中向上移动记录将涉及两个步骤:
总之,对于双链表,您总是需要大约五个记录更改,而对于链表,至少需要三个记录。
答案 1 :(得分:0)
如果您想将这些数据存储在数据库中,那么"订购"专栏是合适的。
每当您更新或插入表格时,您都需要更新此列(删除是不必要的)。通常,您需要更新更改行之后的所有行。触发器可以完成这项工作。
循环遍历行可能很好,几十行甚至几百行(取决于数据库的强大程度)。因此,根据列表的长度,这可能没问题。
任何增强功能都取决于其他因素。我能想到的一些: