Come strutturare un modello di corretta ed efficiente rappresentare i dati su database relazionali ad albero?

dba.stackexchange https://dba.stackexchange.com/questions/62

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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a dba.stackexchange
scroll top