Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Banco de dados dentro de um banco de dados (design de tabela)


Você pode querer ver um modelo de valor de atributo de entidade (EAV) design para seus dados então.

Basicamente, você pode ter uma tabela com nomes de tabelas e alguns outros metadados nas tabelas.

Em seguida, você pode criar uma tabela para cada uma dessas linhas para ter os dados da coluna, como tipo de dados e nome.

Então, você tem uma tabela onde você coloca os valores de cada coluna, em uma tabela longa.

Isso permite criar tabelas dinamicamente ou adicionar/remover linhas dinamicamente.

Para uma comparação entre relacional e EAV, você pode ver esta pergunta:

Banco de dados de valor de atributo de entidade vs . comércio eletrônico de modelo relacional estrito

No entanto, se você quiser ter uma visão relacional desses dados, precisará criar gatilhos para ajudar a manter as visualizações atualizadas, e isso pode ser muito trabalhoso para que funcione bem. Se você não precisa de uma visão relacional, então tudo bem.

Outra maneira de fazer isso é com um banco de dados NoSQL (http://en.wikipedia.org/wiki/ NoSQL ), pois o esquema não precisa ser definido e, portanto, você pode apenas armazenar as colunas necessárias para essa linha.

Neste ponto, eu seguiria o caminho NoSQL, pois existem muitos bancos de dados que podem funcionar, e a reinvenção que você precisa fazer é mínima.