Mysql
 sql >> Database >  >> RDS >> Mysql

Database all'interno di un database (design della tabella)

Potresti voler guardare un modello Entity Attribute Value (EAV) progettare per i tuoi dati allora.

Fondamentalmente puoi avere una tabella con i nomi delle tabelle e alcuni altri metadati sulle tabelle.

Quindi, puoi creare una tabella per ciascuna di queste righe per avere i dati della colonna, come tipo di dati e nome.

Quindi, hai una tabella in cui inserisci i valori per ogni colonna, in una lunga tabella.

Ciò ti consente di creare tabelle dinamicamente o aggiungere/rimuovere righe in modo dinamico.

Per un confronto su relazionale e EAV puoi guardare questa domanda:

Database valore attributo entità vs .rigoroso modello relazionale di e-commerce

Se vuoi avere una vista relazionale di questi dati, però, dovrai creare trigger per mantenere le viste aggiornate e questo può essere un grande lavoro per farlo funzionare bene. Se non hai bisogno di una vista relazionale, dovresti andare bene.

Un altro modo per farlo è con un database NoSQL (http://en.wikipedia.org/wiki/ NoSQL ), poiché lo schema non deve essere impostato e quindi puoi semplicemente archiviare le colonne necessarie per quella riga.

A questo punto, prenderei la via NoSQL perché ci sono molti database che possono funzionare e la reinvenzione che devi fare è minima.