Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Datenbank in einer Datenbank (Tabellendesign)

Vielleicht möchten Sie sich ein Entity Attribute Value Model ansehen (EAV) Design für Ihre Daten dann.

Grundsätzlich können Sie eine Tabelle mit Tabellennamen und einigen anderen Metadaten zu Tabellen haben.

Dann können Sie für jede dieser Zeilen eine Tabelle erstellen, die die Spaltendaten enthält, wie z. B. Datentyp und Name.

Dann haben Sie eine Tabelle, in der Sie die Werte für jede Spalte in eine lange Tabelle einfügen.

Dadurch können Sie Tabellen dynamisch erstellen oder Zeilen dynamisch hinzufügen/entfernen.

Für einen Vergleich zwischen relational und EAV können Sie sich diese Frage ansehen:

Entity Attribute Value Database vs Streng relationales E-Commerce-Modell

Wenn Sie jedoch eine relationale Ansicht dieser Daten haben möchten, müssen Sie Trigger erstellen, um die Ansichten auf dem neuesten Stand zu halten, und dies kann eine Menge Arbeit bedeuten, damit dies gut funktioniert. Wenn Sie keine relationale Ansicht benötigen, sollten Sie in Ordnung sein.

Eine andere Möglichkeit, dies zu tun, ist mit einer NoSQL-Datenbank (http://en.wikipedia.org/wiki/ NoSQL ), da das Schema nicht festgelegt werden muss und Sie einfach die Spalten speichern können, die Sie für diese Zeile benötigen.

An dieser Stelle würde ich den NoSQL-Weg gehen, da es viele Datenbanken gibt, die funktionieren können, und die Neuerfindung, die Sie vornehmen müssen, minimal ist.