sql >> Databasteknik >  >> RDS >> Mysql

PHP/MySQL:Hämta en enda sökväg i Adjacency List-modellen

Nej, inte i MySQL åtminstone. Det är en av de största begränsningarna för Adjacency List Model .

Du kan fortsätta att gå med själv ett ändligt antal gånger, men det är fult, besvärligt och täcker inte obegränsad avdelning. Du kan också ladda ner all data i din applikation, bygga ett träd och hitta sökvägen i applikationen.

Vissa DBMS:er, som SQL Server 2005, Postgres 8.4 och Oracle 11g, stöder rekursiva frågor med vanliga tabelluttryck med WITH nyckelord. Den här funktionen gör det enkelt att skriva frågor som denna, men tyvärr stöder MySQL inte rekursiva frågor ännu.

Du kanske är intresserad av att kolla in följande artikel som beskriver en alternativ modell (den kapslade modellen a> ), vilket gör rekursiva operationer enklare (möjliga) i MySQL:

Dessutom föreslår jag också att du kollar in följande presentation av @Bill Karwin , en regelbunden bidragsgivare på Stack Overflow:

Stängningstabellsmodellen som beskrivs i presentationen är ett mycket giltigt alternativ till den kapslade uppsättningen. Han beskriver denna modell mer detaljerat i sina SQL Antipatterns bok (utdrag ur kapitlet om detta ämne ).



  1. CodeIgniter-fel - det går inte att ansluta till databasen med de angivna inställningarna

  2. mysql union fråga

  3. Bästa sättet att lagra IP i databasen?

  4. Vad är det bästa sättet att avgöra vilken version av Oracle-klienten jag kör?