Toto
web má opravdu pěkný přehled o různých metodách ukládání hierarchických dat v mysql a PHP. K zodpovězení vaší otázky je nejjednodušší použít php a rekurzi. Můžete použít i další metody, jako je modified preorder transversal
, které nevyžadují více databázových dotazů. Implementace této metody však může být složitější, když se jedná o velké množství vložení a aktualizací.
Další opravdu skvělá metoda a mým osobním oblíbeným je takzvaná "uzavřená tabulka" / "vztah sousedství" zmíněný v Jaký je nejúčinnější/nejelegantnější způsob, jak analyzovat plochý stůl do stromu?
Pokud jde o váš komentář, musíte v podstatě vytvořit smyčku nebo rekurzivní funkci, která vybere rodiče chicaga, potom rodiče rodiče a tak dále.
$stack = array();
$parent = 3;
while($parent != 0){
$data = (put your mysql to get the row with parentID = $parent)
$parent = data['parentID'];
$stack[] = $data;
}
$stack = array_reverse($stack);
Zásobník pak bude obsahovat rodiče Chicaga (tj. umístění, USA)