Nogle database management applikationer deal med hierarkisk oplysninger, såsom stater består af amter, der igen indeholder byer. Du kan være fristet til at organisere denne information i separate tabeller i din DBMS - en for hvert niveau i hierarkiet - men en mere elegant løsning bruger en selv - referencer tabel, som er lettere at administrere og plads til en bredere vifte af data. Self- Referencering Table
For at oprette en selvstændig referencesystem bord , vil du begynde med to felter, et ID-nummer og en forælder id-nummer. Til disse felter , kan du tilføje nogen andre egnede for anvendelsen , såsom navn, beskrivelse, placering eller befolkning. For nemheds skyld kan du angive id-nummer til en auto - nummerering felttype , så databasen automatisk numre nye registre i stigende orden. De forældre id referencer ID-nummeret på den overordnede post i hierarkiet , hvis posten har ingen forældre , kan du indstille dette felt til nul. For eksempel har rekord for Californien en ID på en og en forælder ID nul . Rekorden for San Francisco County har et id på to og en forælder ID på én. Hvert barn post i tabellen referencer forælder poster i samme tabel , . Tabellen er selv- referencer
Konsolidering
En af følgerne af selv- refererende tabeller er en konsolidering af flere tabeller i en enkelt tabel. Have færre tabeller forenkler database og letter dets vedligeholdelse. Moderne databasesystemer nemt rumme millioner af registeroplysninger pr bordet, så holder alle af en hierarki s dataelementer i en enkelt tabel er ikke et problem. Ved at indstille ID-feltet til en primær nøgle og den forælder id til et indeks , kan du nemt finde alle de poster langs enhver gren af hierarkiet.
Fleksibilitet
en database, der har en tabel for hvert niveau i et hierarki fungerer godt, indtil et nyt niveau vises, da man så skal tilføje en ny tabel til at rumme forandring og ændre alle de programmer , der bruger databasen. Derimod rummer en selvstændig referencesystem tabel vilkårligt antal hierarkiske niveauer . Den forælder id peger altid til det næste niveau op i hierarkiet , så posterne danner en sammenhængende kæde . Antallet af niveauer i hierarkiet , kan være den samme for alle overordnede poster , eller det kan variere , selv- henvisninger bord håndterer begge tilfælde
Cascading Slet
Når . en selvstændig referencesystem tabel indeholder mange dataposter , kan du spekulerer på, hvad skal gøre, når du sletter en overordnet post . Medmindre du også slette alle underordnede poster , risikerer du at skabe " forældreløse " eller optegnelser med ugyldige forælder ID'er. Heldigvis findes en ordning, at håndtere denne situation automatisk. Når du opretter den forælder id felt, kan du angive, at det har en fremmed nøgle-felt , og bruge ID-feltet som tabellens primære nøgle. Når du har gjort dette , kan du tilføje den begrænsning , "ON DELETE CASCADE " til feltet. Med den begrænsning, og fremmed nøgle indstillinger på plads , vil databasen slette alle tilhørende underordnede poster , hver gang du sletter en overordnet post .