Search code examples
databasedjangodjango-modelshierarchyhierarchical-data

Hierarchical Data Models: Adjacency List vs. Nested Sets


I have a product catalog. Each category consists of different number (in deep) of subcategories. The number of levels (deep) is unknown, but I quite sure that it will not be exceed of 5,6 levels. The data changes are much more rarely then reads.

The question is: what type of hierarchical data model is more suitable for such situation. The project is based on Django framework and it's peculiarities (admin i-face, models handling...) should be considered.

Many thanks!


Solution

  • Nested sets are better for performance, if you don't need frequent updates or hierarchical ordering.

    If you need either tree updates or hierarchical ordering, it's better to use parent-child data model.

    It's easily constructed in Oracle and SQL Server 2005+, and not so easily (but still possible) in MySQL.