Domanda

C'è un database gerarchico open-source o di emulazione in cima di RDBMS esistenti?

Sto cercando un DBMS (o plugin per RDBMS esistenti) in grado di memorizzare i dati gerarchici e permessi per eseguire query sui dati gerarchici (qualcosa come "selezionare il livello di ... CONNECT BY ...", "SELEZIONA PARENT ... " per esempio). So che c'è un certo supporto in Oracle, ma c'è una soluzione più complessa?

È stato utile?

Soluzione

Non è un plugin standardizzato per fare questo. Ho guardato più di una volta. Tuttavia, ci sono una serie di opzioni. Vedere dalla mia precedente interrogazione sullo stesso argomento:

Quali sono le opzioni per la memorizzazione di dati gerarchici in un database relazionale?

In breve, se si sta utilizzando una tabella con ID e ParentID (lista di adiacenza pseudonimo) si utilizza espressioni di tabella comuni con la maggior parte dei database (Oracle CONNECT BY essere una delle eccezioni più importanti). OTO, qualcosa come percorso materializzato o insiemi annidati può essere una misura migliore per la vostra situazione - per la capacità esempio per la ricerca di "lignaggio", dove con questa lista di adiacenza è un'operazione costosa.

Di solito ciò che finisce accadendo con un sistema che ha bisogno di lavorare a lungo con dati gerarchici, ad esempio un CMS, è che implementa più di una di queste soluzioni. L'ipotesi è si legge pesantemente superano le scritture.

Altri suggerimenti

i dati relazionali non supporta direttamente le gerarchie nel modo in cui una struttura intrinsecamente gerarchica come XML fa. Devi usare un modello di dati quali gli insiemi nidificati o una scala di auto-join per modellare la gerarchia.

A seconda del tipo di sistema che si possiede, espressioni di tabella comuni vi permetterà di eseguire query gerarchiche sui dati. CTE sono supportate dalle versioni di SQL Server dal 2005, le versioni più recenti di DB / 2 e PostgreSQL - e, probabilmente, alcuni altri sistemi. CTE sono un po 'più laborioso di CONNECT BY, ma vengono eseguiti su una discreta varietà di platorms.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top