Whether you build your own forum, threaded comments, or categorization system, there will be a moment when you need to save hierarchical structures in a database. Although the tables of relational databases (such as MySQL and PostgreSQL) are flat, there is a fast and effective way to store hierarchical structures. It is called Modified Preorder Tree Traversal (MPTT). MPTT allows you to read tree structures without recursive calls to the database.
Firstly, let's get familiar with the terminology of tree structures. A tree data structure is a nested collection of nodes, starting at the root node and with references to child nodes. There are restrictions: for instance, no node should reference back to create a loop and no reference should be duplicated. The following are some other terms to remember:
- A parent is any node that has references to child nodes.
- Descendants...