2

这是我第一次在同一模型(产品类别)中对层次结构进行建模。

我发现了一篇关于这个主题的好帖子。由于我使用 Rails 4 和 Postgres,根据文章支持递归查询(这是我第一次听到这个术语),“带有递归查询的邻接列表”似乎是要走的路,因为它既易于建模又快速查询。

文章建议使用acts_as_sane_tree gem,它支持递归查询。这个 repo 已经两年没有更新了,我不确定它是否支持 Rails 4。这个项目是acts_as_tree gem 的一个分支,它支持 Rails 4 并且维护得很好。

我应该使用哪种宝石?act_as_tree gem是否支持递归查询以避免昂贵的查询?

4

2 回答 2

2

如果您不确定要使用什么 gem,我总是建议您查看Ruby Toolbox。它有助于评估一个 gem 项目是否仍然活跃,有多少开发人员使用这个 gem 等等。你为什么知道这样做?不想选择不再维护的宝石。您想使用社区使用的工具并尽可能接近主流。如果您不关注社区,如果您需要修复错误、进一步的文档或想要更新您的 Rails 版本,您将遇到问题。

在这种情况下,嵌套 ActiveRecord awesome_nested_set 和 ancestry 是很好的候选者。我不会选择递归查询实现,因为大多数数据库不支持这个。除非您有充分的理由,否则不值得将您的应用程序绑定到特定的数据库管理系统。

于 2013-10-13T08:59:51.173 回答
1

你考虑过祖传宝石吗?

“它公开了所有标准的树结构关系(祖先、父母、根、孩子、兄弟姐妹、后代),所有这些都可以在单个 SQL 查询中获取。”

于 2013-10-13T08:28:15.520 回答