Sobes.tech
Junior — Middle

Kakšen pristop ali podatkovno strukturo bi uporabili za shranjevanje in prikaz družinskega drevesa v relacijski bazi podatkov?

sobes.tech AI

Odpoveď od AI

Na uloženie rodokmeňa v relačnej databáze sa často používa štruktúra "Zoznam susedov" (Adjacency List). V tabuľke sa uchováva každá osoba s odkazom na rodiča (napríklad pole parent_id).

Príklad štruktúry tabuľky:

id meno parent_id
1 Ivan NULL
2 Mária 1
3 Aleksej 1

Tento prístup je jednoduchý na implementáciu a umožňuje stavať strom rekurzívnym dopytovaním potomkov alebo predkov.

Pre zložitejšie dopyty je možné použiť:

  • Vnorené sety — uloženie ľavých a pravých hraníc pre rýchle vyhľadávanie podstromov.
  • Materializovaná cesta — uloženie cesty ku uzlu ako reťazca.

Ale pre väčšinu úloh je "Zoznam susedov" dostatočný a dobre podporovaný štandardnými SQL dopytmi.