sql >> Base de Datos >  >> RDS >> Mysql

Base de datos dentro de una base de datos (diseño de tabla)

Es posible que desee ver un Modelo de valor de atributo de entidad (EAV) diseño para sus datos entonces.

Básicamente, puede tener una tabla con nombres de tablas y algunos otros metadatos en las tablas.

Luego, puede crear una tabla para cada una de esas filas para tener los datos de la columna, como el tipo de datos y el nombre.

Luego, tienes una tabla donde pones los valores de cada columna, en una tabla larga.

Esto le permite crear tablas dinámicamente o agregar/eliminar filas dinámicamente.

Para una comparación entre EAV y relacional, puede consultar esta pregunta:

Base de datos de valor de atributo de entidad vs Comercio electrónico de modelo relacional estricto

Sin embargo, si desea tener una vista relacional de estos datos, deberá crear disparadores para ayudar a mantener las vistas actualizadas, y esto puede ser una gran cantidad de trabajo para que funcione bien. Si no necesita una vista relacional, debería estar bien.

Otra forma de hacerlo es con una base de datos NoSQL (http://en.wikipedia.org/wiki/ NoSQL ), ya que no es necesario configurar el esquema, por lo que solo puede almacenar las columnas que necesita para esa fila.

En este punto, optaría por NoSQL, ya que hay muchas bases de datos que pueden funcionar y la reinvención que debe hacer es mínima.