Nepříliš chytrý blog Od programování po jezevce

29Led/1223
Databáze

Closure Table – stromy v MySQL trochu jinak

database_tree

Ukládání stromové struktury do relační databáze je celkem běžným požadavkem při návrhu aplikací. Typicky se setkáme například s požadavkem realizovat kategorie, jejich podkategorie, podkategorie podkategorií atd. nebo prostě jen komentáře s možností reakce na kohokoli. Možností, jak řešit tento problém, je několik a každá se hodí pro jiný případ. Jistě znáte řešení v podobě Adjencency Listu, což je prostá reference na rodiče, které je v databázových systémech bez rekurzivních dotazů (MySQL) ukázkovým anti-patternem. Dalším často používaným řešením je například Modified Preorder Tree Traversal Algorithm známý jako traverzování kolem stromu. O těchto způsobech reprezentace stromu v relační databázi toho bylo již napsáno dost a dost. Já se ale, jak už napovídá název článku, budu věnovat metodě známé jako Closure Table, o které toho v našich končinách ještě nebylo moc napsáno.

Celý článek …