Více než 50 různých kategorií, které sdílejí 50% atributy. Jak vytvořit všechny tyto tabulky efektivně v sql databázi? [uzavřeno]

0

Otázka

Ve velkém systému, při analýze databáze, tam je asi 50 různých kategorií, v požadavcích, které by měly reprezentován jako tabulky.

Každá kategorie má mnoho atributů - sloupců-všechny tyto kategorie má stejné 50% sloupců. Pro příklad, každá kategorie má (id, jméno, datum, stát, správce, odd), všechny kategorie mají tyto atributy, ale každá kategorie má své vlastní atributy, které se liší od sebe navzájem, oni jsou asi 3 - 5 atributy.

Teď, jak je zastupují ve fyzické databáze stejně jako tabulky? Jeden stůl, nebo stůl pro každou kategorii, co o nadbytečnost?

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

Nejlepší odpověď

3

Záleží na tom, co přesně se snažíte dosáhnout.

Pokud je váš hlavní starostí je místo na disku, doporučil bych zvážit sparse sloupců, se sloupce sady jako možnost, pokud je to nutné. V tomto případě, můžete si dát všechny tyto subjekty do jedné fyzické tabulky, s povinnými atributy normální sloupců a specifické atributy byly prohlášeny jako řídký.

Pokud uvažujete o normalizovaný model, který by odstranil většinu dat anomálie, typické řešení je supertype-subtype hierarchie. Hlavní tabulka ukládá pouze atributy, které jsou povinné pro všechny subjekty, a dítě tabulky obsahují pouze hlavní tabulky' identifikátor a atributy specifické pro tento konkrétní kategorie. Všechny dětské stoly odkaz "supertype" tabulky přes cizí klíče.

Někdy, v závislosti na oblasti, složitější model s další "hnízdění" úrovně, mohou být použity. Můžete myslet na to jako třída hierarchii dědičnosti - analogie je velmi blízko, vlastně.

Samozřejmě, že obě (a další) přístupy mají své silné a slabé stránky, takže možná budete muset přečíst na předměty a učinit volbu.

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

Například některé atributy jsou platné pouze pro některé kategorie, můžete si Entity-Attribute-Value model, pro ukládání kategorie.

Existuje několik způsobů, jak reprezentovat EAV modely v databázi. Můžete odkazovat na níže článku: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

EAV model, způsob ukládání dat, přichází s jeho vlastní výzvy, při dotazu do databáze. Tak uvidíme, zda to bude vyhovovat vašim potřebám, před výběrem stejné.

2021-11-24 03:29:20

V jiných jazycích

Tato stránka je v jiných jazycích

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