Awesome Nested Set
Closure Tree
Awesome Nested Set | Closure Tree | |
---|---|---|
2 | 2 | |
2,410 | 1,856 | |
0.4% | 0.1% | |
5.8 | 4.5 | |
4 months ago | 5 months ago | |
Ruby | Ruby | |
MIT License | MIT License |
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.
Awesome Nested Set
-
Active record: how to recursively load children of children of children in one query?
Another option is to use something like AwesomeNestedSet which does basically the same thing as the previous suggestion but with a whole lot more flexibility (and likely more reliably performant).
-
The surprisingly difficult problem of user-defined order in SQL
Ex https://github.com/collectiveidea/awesome_nested_set
Closure Tree
-
Hierarchical Structures in PostgreSQL
I'm actually using materialized views and CTE with PhotoStructure (where hierarchies are arguably the cornerstone of the product).
It's pretty funny that I landed on this implementation, given that I spent a couple years building https://github.com/ClosureTree/closure_tree (one of the most popular acts-as-hierarchy ActiveRecord gems), as it (unsurprisingly) uses closure trees.
When CTE isn't available, closure trees are nice, but boy howdy, does that closure tree table get gigantic with deeper graphs.
If CTE is available, closure trees don't even come close in performance and simplicity.
(Hint: materialized paths should use a unique separator: ASCII 0x1F is applicable: https://en.wikipedia.org/wiki/C0_and_C1_control_codes#Field_...)
-
Find all objects of a chain of associations on the same table
I’ve used this for that https://github.com/ClosureTree/closure_tree
What are some alternatives?
Ancestry - Organise ActiveRecord model into a tree structure
ActsAsTree - ActsAsTree -- Extends ActiveRecord to add simple support for organizing items into parent–children relationships.
Mongoid Tree - A tree structure for Mongoid documents using the materialized path pattern