Mai mult de 50 de categorii diferite, care se împart 50% din atribute. Cum de a crea toate aceste tabele eficient în sql baze de date? [închis]

0

Problema

În sistem de mare, atunci când analiza de date, există aproximativ 50 de categorii diferite în cerințe, care trebuie reprezentate ca tabele.

Fiecare categorie are mai multe atribute - coloane-, toate aceste categorii are aceeași de 50% din coloane. De exemplu, fiecare categorie are (id, nume, data, stat, admin, dept), toate categoriile au aceste atribute, dar fiecare categorie are propriile sale atribute, care diferă de la fiecare alte, sunt aproximativ 3 - 5 atribute.

Acum, cum să le reprezinte în fizică baze de date și tabele? O masă, sau un tabel pentru fiecare categorie, ce zici de concediere?

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

Cel mai bun răspuns

3

Depinde de exact ceea ce încearcă să realizeze.

Dacă principala ta preocupare este spațiu pe disc, mi-ar recomanda să ia în considerare rare coloane, cu o coloană stabilește ca o opțiune, dacă este necesar. În acest scenariu, puteți pune toate aceste entități într-o singură masă fizică, cu atribute obligatorii a fi normal coloane și atribute specifice declarat ca fiind rare.

Dacă sunteți de gândire despre o normalizate model care va elimina cele mai multe dintre anomaliile de date, o soluție tipică este o supertype-subtipul ierarhie. Masa principală magazine numai atributele care sunt obligatorii pentru toate entitățile, iar copilul tabele conțin numai masă principală' de identificare și atribute specifice pentru această categorie specială. Toate tabelele copil de referință "supertype" masă prin chei externe.

Uneori, în funcție de domeniu, un model mai complex cu alte "cuiburi" niveluri ar putea fi angajați. Vă puteți gândi la asta ca la o clasa de moștenire ierarhie - analogia este foarte aproape, de fapt.

Desigur, ambele (și alte) abordări au punctele lor forte și punctele slabe, astfel încât s-ar putea nevoie pentru a citi pe subiecte și de a face o alegere.

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

Ca unele atribute sunt aplicabile doar la unele categorii, vă puteți gândi de Entitate-Atribut-Valoare de model, pentru depozitarea pe categorii.

Există mai multe moduri de a reprezenta EAV modele într-o bază de date. Puteți consulta mai jos articolul: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

Pe EAV model modalitate de stocare a datelor vine cu propriile sale provocări, atunci când interogarea bazei de date. Deci, a se vedea dacă se va potrivi nevoilor dumneavoastră, înainte de a alege la fel.

2021-11-24 03:29:20

În alte limbi

Această pagină este în alte limbi

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