Come strutturare un modello di corretta ed efficiente rappresentare i dati su database relazionali ad albero?
-
15-10-2019 - |
Domanda
In base a di movimento di dati ad albero in un database relazionale utilizzando SQL domanda , vorrei sapere come la strada regolarmente usato per descrivere i dati su database relazionali considerando implicazioni fisiche ad albero?
Sto assumendo che l'RDBMS ha caratteristiche particolari non per la manipolazione che oltre normali funzionalità di SQL ANSI o comuni disponibili.
Nel dubbio Sono sempre interessato a MySQL e PostgreSQL e SQLite alla fine.
Soluzione
Credo che sta per qualcosa come un albero binario. Vorrei solo includere tre tasti che sono legati al l'ID univoco della stessa tabella, uno per la sinistra, uno per il figlio destro, e uno per il genitore.
i.e.- (molto pseudocodice)
TABLE tree
int id autoinc
varchar(16) data_you_care_about
int parent_id
int left_child_id
int right_child_id
FOREIGN KEY parent_id = tree.id
FOREIGN KEY left_child_id = tree.id
FOREIGN KEY right_child_id = tree.id
Altri suggerimenti
Se ogni nodo è davvero la stessa entità di dati, quindi il paradigma sarebbe ancora significare una tabella per ogni entità, e una colonna di collegamento per l'attraversamento albero dove ogni nodo è legato solo una volta.
Per gli enti che sono collegati in più punti nella struttura, sarebbe stata usata una tabella di collegamento separato o una colonna multipla valore distinto.