Ruby中的链表

时间:2012-11-07 15:30:14

标签: ruby activerecord linked-list

我有ParentChild个型号。父has_many :children,应以正确的顺序保存在数据库中。我决定将其保存为带有字段next_id的链接列表。我知道,有acts_as_list个宝石,但它会保存position字段。是不是更多sql-heavy解决方案?

尽管如此,您有什么想法我如何构建它?我想保存SRP,因此列表的所有操作都应该在Child模型中。 Parent已经订购children

1 个答案:

答案 0 :(得分:2)

将列表中的所有元素与单数父项相关联的优点是您可以一次性获取和排序它们:

SELECT * FROM list_items WHERE parent_id=? ORDER BY position

您无法使用链接列表结构执行此操作。相反,您必须一次最多获取两个,前一个和下一个条目,并且必须以递归方式对列表中的所有其他记录重复此过程。检索1000多个项目的列表是不切实际的。