Mais de 50 categorias diferentes que compartilham 50% dos atributos. Como criar todas essas tabelas de forma eficiente em banco de dados sql? [fechado]

0

Pergunta

No sistema de grande porte, ao analisar a base de dados, existem cerca de 50 categorias diferentes nos requisitos, que devem representada na forma de tabelas.

Cada categoria possui muitos atributos - colunas-, todas essas categorias tem o mesmo de 50% de colunas. Por exemplo, cada categoria tem (id, nome, data, estado, administração, departamento), todas as categorias têm esses atributos, mas cada categoria tem seus próprios atributos que diferem uns dos outros, eles são cerca de 3 - 5 atributos.

Agora, como para representá-los na física de banco de dados como tabelas? Uma tabela ou tabela para cada categoria, o que sobre a redundância?

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

Melhor resposta

3

Depende do que exatamente você está tentando alcançar.

Se a sua principal preocupação é o espaço em disco, eu gostaria de recomendar a considerar colunas esparsas, com conjuntos de colunas como uma opção, se necessário. Nesse cenário, você pode colocar todas essas entidades em uma única tabela física, com atributos obrigatórios a ser normal colunas, e os atributos específicos, sendo declarada como esparso.

Se você está pensando em um normalizada modelo que iria eliminar a maioria dos dados de anomalias, uma solução típica é um supertipo-subtipo de hierarquia. A principal tabela armazena apenas os atributos que são obrigatórias para todas as entidades, e a criança tabelas contêm apenas a tabela principal' e o identificador de atributos específicos para esta categoria em particular. Todas as criança tabelas de referência o "supertipo" da tabela por meio de chaves estrangeiras.

Às vezes, dependendo da área de assunto, um modelo mais complexo, com adicional de "assentamento" níveis podem ser empregadas. Você pode pensar nisso como uma hierarquia de herança da classe - a analogia é muito perto, na verdade.

Claro, ambas (e outras) abordagens têm seus pontos fortes e fracos, então você pode precisar para ler sobre os assuntos e fazer uma escolha.

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

Como alguns atributos são aplicáveis somente para algumas categorias, você pode pensar de Entidade-Atributo-Valor modelo, para armazenar as categorias.

Existem várias formas de representar a EAV modelos em um banco de dados. Você pode consultar o artigo abaixo: https://inviqa.com/blog/understanding-eav-data-model-and-when-use-it

A EAV modelo de forma de armazenamento de dados vem com seus próprios desafios, quando você consulta o banco de dados. Então, ver se ele vai se adequar as suas necessidades, antes de escolher o mesmo.

2021-11-24 03:29:20

Em outros idiomas

Esta página está em outros idiomas

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