S MySQL je nejjednodušší způsob, jak to udělat, uložit vše cesty ve stromu, čímž se vytvoří přechodné uzavření .
table_children
parent child
0 0
1 1
2 2
3 3
4 4
0 1
0 2
0 3
0 4
1 2
1 3
1 4
3 4
Nyní jej můžete dotazovat takto:
SELECT t.*
FROM table_children c
JOIN table t ON c.child = t.id
WHERE c.parent = 0;
Viz také:
- Jaký je nejúčinnější/nejelegantnější způsob, jak analyzovat plochý stůl do stromu?
- Modely pro hierarchická data s SQL a PHP
- SQL Antipatterns:Vyhýbání se nástrahám databázového programování