Plus de 50 catégories différentes qui partagent 50% des attributs. Comment créer toutes ces tables efficacement dans la base de données sql? [fermé]

0

La question

Dans ce grand système, lors de l'analyse de la base de données, il y a environ 50 catégories différentes dans les exigences, qui devrait représentés sous forme de tableaux.

Chaque catégorie possède de nombreux attributs - les colonnes-, toutes ces catégories est même de 50% de colonnes. Par exemple, chaque catégorie a (id, nom, date, état, administration, département), toutes les catégories ont ces attributs, mais chaque catégorie a ses propres attributs qui diffèrent les uns des autres, ils sont environ 3 - 5 attributs.

Maintenant, la façon de les représenter dans la physique de la base de données sous forme de tables? Une table ou une table pour chaque catégorie, ce sujet de la redondance?

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

La meilleure réponse

3

Dépend exactement ce que vous essayez d'atteindre.

Si votre principale préoccupation est l'espace disque, je vous recommande de considérer les colonnes fragmentées, avec colonne définit comme une option, si nécessaire. Dans ce scénario, vous pouvez mettre toutes ces entités en un seul tableau, avec les attributs obligatoires cours normal des colonnes et des attributs spécifiques d'être déclaré comme étant incomplet.

Si vous pensez à un modèle normalisé qui permettrait d'éliminer la plupart des anomalies de données, une solution typique est un supertype sous-type de hiérarchie. La table principale stocke uniquement les attributs qui sont obligatoires pour toutes les entités, et de l'enfant tables contiennent uniquement de la table principale' identificateur et des attributs spécifiques à cette catégorie particulière. Tous les enfants de tables de référence de la "supertype" table via des clés étrangères.

Parfois, en fonction de la zone de sujet, un modèle plus complexe avec d'autres "imbrication" des niveaux pourraient être employées. Vous pouvez considérer cela comme une hiérarchie d'héritage des classes - l'analogie est très proche, en fait.

Bien sûr, les deux (et d'autres) approches ont leurs forces et leurs faiblesses, de sorte que vous pourriez avoir besoin de lire sur les sujets et de faire un choix.

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

Comme certains attributs ne sont applicables qu'à certaines catégories, vous pouvez penser de l' Entité-Attribut-Valeur de modèlepour le stockage des catégories.

Il existe plusieurs façons de représenter EAV modèles dans une base de données. Vous pouvez consulter ci-dessous l'article: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

Le modèle EAV moyen de stockage de données est livré avec son propre lot de défis, lorsque vous interrogez la base de données. Donc, voir si il va répondre à vos besoins, avant de choisir le même.

2021-11-24 03:29:20

Dans d'autres langues

Cette page est dans d'autres langues

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