Quali sarebbero i pro ei contro di dati gerarchici e. i dati relativi, in termini di prestazioni (e categorizzazione)?

StackOverflow https://stackoverflow.com/questions/731983

Domanda

Questo è legato alla questa domanda . Mi ha fatto pensare che, per esempio, questo libro . Invece di essere un figlio di entrambi [Agriculture] e [Other], tra gli alberi e [Books > Catalogs > Agriculture] [Business & Industrial > Agriculture & Forestry > Other] rispettivamente, potrebbe solo stare da solo avere quei livelli come i tag, invece.

In un sito web come eBay, sarebbero i costi delle prestazioni di vendita di tutti i record con le tag [Agriculture E Catalog] pesantemente outweigth quelli di elencare tutti i record nella [Books > Catalogs > Agriculture] Categoria , a condizione i dati vengono correttamente normalizzata?

Mi rendo conto che probabilmente è una domanda stupida (e no, non credo che sto programmando la prossima eBay), ma non riesco a scuotere questa curiosità e, peggio; tentazione ; quindi preferisco sembrare stupido e ottenere una buona conoscenza delle mie incomprensioni di fare qualcosa di stupido o inutile in seguito.

È stato utile?

Soluzione

Quando il modello relazionale è emersa prima, il paradigma del database dominante era gerarchica; e poi (come è ancora il caso) gerarchica è più efficiente perché, in sostanza, si può iniziare con le query parzialmente prejoined.

Ma solo sulla base di una struttura gerarchica statica. La grande difficoltà emerge quando si vuole flettere la visualizzazione dei dati di venire da un'altra dimensione radice. (Era una domanda fortemente dibattuto se i database relazionali potrebbero mai essere abbastanza efficiente per l'utilizzo pratico;. Presto risolta mediante l'applicazione diligente della Legge di Moore)

Pensate a clienti che hanno ordini che comprende i prodotti; una gerarchia. Inevitabilmente si vorrà essere anche in grado di pensare a prodotti che si trovano in ordini da clienti; un intero altro gerarchia. E venditori nelle regioni che generano ordini da clienti; o hanno clienti che gli ordini di posto.

I database relazionali si permettersi la capacità di ricostruire le vostre gerarchie a volontà con approssimativamente uguale efficienza; un beneficio disponibile solo in altri formati di database al costo di incorporare più gerarchie ortogonali; nel qual caso il costo di alterazione, aggiunta o l'eliminazione di dati diventa astronomico.

Altri suggerimenti

Lo scopo principale del modello relazionale è quello di evitare la duplicazione. dati gerarchici, mentre più facile Grok manualmente, soffre di problemi di duplicazione.

Utilizzare il modello che si adatta meglio i dati invece di fare l'ottimizzazione prematura.

Io tendo a costruire alberi gerarchici di presentazione di dati relazionali.

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