ruby - Ruby 中的链接列表

标签 ruby activerecord linked-list

我有 ParentChild 模型。父 has_many :children,应以正确的顺序保存在数据库中。我决定将其保存为带有字段 next_id 的链表。我知道,有 acts_as_list gem,但它保存了 position 字段。这不是更重sql的解决方案吗?

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

最佳答案

将列表中的所有元素都与单个父级相关的优点是您可以一次获取并排序它们:

SELECT * FROM list_items WHERE parent_id=? ORDER BY position

您无法使用链表结构来做到这一点。相反,您必须一次最多获取两个(上一个和下一个条目),并且必须对列表中的所有其他记录递归地重复此过程。检索 1000 多个项目的列表是不切实际的。

关于ruby - Ruby 中的链接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13272833/

相关文章:

ruby - 从文件名中获取 mimetype

ruby-on-rails - Rail 对象关系和 JSON 渲染

java - 为什么这个在java中反转LinkedList的算法不适合θ(N)?

Java-从文件中读取大数对并用链表表示它们,得到每对的和与积

ruby - 检查字符串是否包含一个完整的单词

ruby - ri 不在 zsh 中工作

ruby - 为什么 Ruby setter 需要 "self."类内的资格?

sql - activerecord 相当于 SQL 'minus'

ruby-on-rails - 不推荐使用 rails 4 find_by 吗?

arrays - 在列表中的任何位置添加/删除元素时,链表是否比数组更好?