如何实现SQL中的链接列表?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (19)

在MySQL数据库中存储链接列表的最佳方法是什么,这样插入就简单了(也就是说,您不必每次都重新索引一堆东西),这样就可以很容易地按顺序提取列表。

提问于
用户回答回答于

在您的表中存储一个名为“Location”的整数列。记录列表中第一项的0,第二项的1,等等。在数据库中索引该列,当您想要提取值时,按该列排序。

 alter table linked_list add column position integer not null default 0;
 alter table linked_list add index position_index (position);
 select * from linked_list order by position;

若要在索引3处插入值,请修改第3行及以上的位置,然后插入:

 update linked_list set position = position + 1 where position >= 3;
 insert into linked_list (my_value, position) values ("new value", 3); 
用户回答回答于

不是增加1,而是增加10甚至100。然后,插入可以计算出插入之间的差异的一半,而不必更新插入下面的所有内容。选择一个足够大的数字来处理您的平均插入数--如果它太小,那么您将不得不在插入过程中重新更新所有具有较高位置的行。

扫码关注云+社区