Più di 50 diverse categorie che condividono il 50% di attributi. Come creare tutte le tabelle in modo efficiente in database sql? [chiuso]

0

Domanda

Nel sistema di grandi dimensioni, analizzando il database, ci sono circa 50 diverse categorie, requisiti, che devono rappresentato come tabelle.

Ogni categoria ha molti attributi colonne, tutte queste categorie è la stessa di 50% di colonne. Per esempio, ogni categoria ha (id, nome, data, stato, admin, rep), tutte le categorie hanno gli attributi, ma ogni categoria ha le proprie caratteristiche che differiscono l'uno dall'altro, sono circa 3 - 5 attributi.

Ora, come rappresentano la fisica del database come tabelle? Una tabella o tabella per ogni categoria, che cosa circa la ridondanza?

sql sql-server
2021-11-24 02:49:24
2

Migliore risposta

3

Dipende da che cosa esattamente si sta cercando di ottenere.

Se la vostra preoccupazione principale è lo spazio su disco, mi sento di raccomandare a considerare le colonne di tipo sparse, con set di colonne come opzione, se necessario. In questo scenario, è possibile inserire tutti questi elementi in un unico tabella fisica, con gli attributi obbligatori normale colonne e gli attributi specifici di essere dichiarata di tipo sparse.

Se stai pensando di un normale modello che consenta di eliminare la maggior parte dei dati delle anomalie, una soluzione tipica è un supertipo-sottotipo gerarchia. La tabella principale memorizza solo gli attributi che sono obbligatori per tutti gli enti, e il bambino tabelle contengono solo la tabella principale identificatore e gli attributi specifici per questa particolare categoria. Il bambino tabelle di riferimento "il supertipo" tabella tramite chiavi esterne.

A volte, a seconda dell'area tematica, un modello più complesso di "raggruppamento" i livelli potrebbe essere impiegato. Si può pensare a questo come una gerarchia di ereditarietà delle classi - l'analogia è molto vicino, in realtà.

Naturalmente, sia (e altri), gli approcci hanno i loro punti di forza e di debolezza, quindi potrebbe essere necessario leggere sui soggetti e di fare una scelta.

2021-11-24 03:16:08
-1

Come alcuni attributi sono applicabili solo ad alcune categorie, si può pensare di Entità Valore dell'Attributo modello, per memorizzare le categorie.

Ci sono diversi modi di rappresentare EAV modelli in un database. Si può fare riferimento alla seguente articolo: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

L'EAV modello di modo di archiviazione dei dati, con i suoi problemi, quando si esegue una query di database. Quindi, vedere se soddisfa le vostre esigenze, prima di scegliere lo stesso.

2021-11-24 03:29:20

In altre lingue

Questa pagina è in altre lingue

Русский
..................................................................................................................
Polski
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................