sql >> Databáze >  >> RDS >> Mysql

PHP/MySQL:Získejte jednu cestu v modelu seznamu sousedství

Ne, alespoň ne v MySQL. To je jedno z největších omezení Model seznamu sousedství .

Mohli byste se sami připojit neomezeně mnohokrát, ale to je ošklivé, nešikovné a nepokrývá to neomezené oddělení. Můžete si také stáhnout všechna data ve své aplikaci, vytvořit strom a najít cestu v aplikaci.

Některé DBMS, jako je SQL Server 2005, Postgres 8.4 a Oracle 11g, podporují rekurzivní dotazy pomocí běžných tabulkových výrazů pomocí WITH klíčové slovo. Tato funkce umožňuje snadné psaní dotazů, jako je tento, ale bohužel MySQL zatím nepodporuje rekurzivní dotazy.

Možná vás bude zajímat následující článek, který popisuje alternativní model (model vnořené sady ), což usnadňuje (možné) rekurzivní operace v MySQL:

Kromě toho také doporučuji prohlédnout si následující prezentaci od @Bill Karwin , pravidelný přispěvatel na Stack Overflow:

Model uzavírací tabulky popsaný v prezentaci je velmi platnou alternativou k vnořené množině. Tento model popisuje podrobněji ve svém antipatterny SQL kniha (úryvek z kapitoly na toto téma ).



  1. Volejte uloženou proceduru pro každý řádek vrácený dotazem v MySQL

  2. Kolik lidí se registruje v den v týdnu

  3. Naplňování polí v modální formě pomocí PHP, jQuery

  4. C# volání oracle uložené funkce