structuri cu cheie de biți
Într-o structură cu o cheie dreaptă biți, copiii imediați au chei primare cu o altă cifră nenuloasă și aceeași ca și cheia primară a strămoșului în cifra inferioară. În cazul considerat anterior de noi, descendenții primului element rădăcină (ID = 1) vor avea ID 11,21,31,41, ... 91. Cerere de selecție:
SELECTAȚI "ID" DE LA "CATALOGUL4" CU "ID" IN (11,21,31,41,51,61,71,81,91)
Preluarea tuturor copiilor
Destul de des apare problema obținerii tuturor, inclusiv a descendenților direcți ai acestui element. Să luăm în considerare soluția acestei probleme pentru structurile reduse.
structura cu referire la strămoș și modificarea acestuia cu suport pentru informația de nivel a elementului
Nu există o cale simplă, din păcate. Trebuie să organizăm recursul la întrebări.
structura cu depozitare la nivel de nivel
Descendenții acestui element sunt conținute în tabelele "inferioare" și au, ca parte dintr-o referință compusă la strămoșul unuia dintre câmpuri, valoarea identității strămoșilor. O listă comună de descendenți poate fi obținută prin combinarea interogărilor (UNION).
Introducerea unui câmp NIVEL suplimentar în interogare se datorează faptului că descendenții elementului din diferite tabele pot avea aceleași ID-uri și atunci când interogările sunt combinate în loc de mai multe rânduri, rezultatul va fi unul. O altă problemă care duce la necesitatea introducerii unui câmp suplimentar în interogare, deoarece Este necesar să știți din ce tabel este selectat acest ID.
bit cheie
Această structură conține informații despre calea completă spre element. Aceasta facilitează selectarea tuturor descendenților.
Cheia din stânga
Cheia corectă
Și aici, totul este simplu. Primul element al ierarhiei ID = 1, în al doilea nivel primul strămoș 11, etc. Astfel, descendenții vor avea la sfârșit numerele de identificare care se potrivesc cu ID-ul strămoșilor.
structură cu depozitare a limitelor sucursalelor
Elementele structurii LOW și HIGH stochează limitele gama de chei primare ale tuturor descendenților.
Obtinerea nivelului de cuibare a unui element
Deseori, nivelul de cuibare al unui element al ierarhiei este legat de un anumit criteriu de clasificare a domeniului. De aici apare problema stabilirii nivelului de cuibare a unui element arbitrar.
structură cu referire la strămoș, structură cu depozitare a limitelor ramurii
Construirea căii complete la rădăcina copacului și determinarea numărului de strămoși. Este destul de incomod, dar nu există altă cale.
structura cu referire la strămoș și depozitarea nivelului de cuibărit
Nu fără motiv, am intrat într-un câmp pentru stocarea nivelului de cuibărit. Este ceva care conține informațiile de care avem nevoie.
structura cu depozitare la nivel de nivel
Nivelul de cuibare este determinat de tabelul în care este stocată intrarea despre element.
bit cheie
Nivelul de cuibare este determinat de poziția ultimului bit non-zero din cheie.
Obținerea căii complete de la element la rădăcina ierarhiei
structura cu referire la strămoș și modificarea acestuia cu suport pentru informații despre nivelul elementului, structura cu spațiul de depozitare a ramificațiilor
Din nou, pentru a calcula calea completă, trebuie să obțineți strămoși folosind interogări secvențiale. O întrebare simplă aici este indispensabilă. Următorul text este textul procedurii stocate pentru a obține calea completă dintr-un element arbitrar:
structură cu depozitare la nivel de tabel, structură cu o cheie bitwise
Calea completă este cuprinsă în cheia primară a elementului.
Operațiile de inserare, ștergere, mutare a unui element și descendenții acestuia
structura cu referire la strămoș
Adăugarea unui element nou: