Was ist die beste Vorgehensweise zum Speichern von Metadaten einzelner Datensätze in einer Datenbank?
Ich muss allgemeine Metadaten wie Erstellungszeit und Zeitpunkt der letzten Aktualisierung für viele Tabellen in meiner Datenbank speichern. Ich habe ein paar verschiedene Lösungen gefunden:
Speichern Sie die Metadaten direkt in den Tabellen.
Vorteile:
- Metadaten sind direkt mit Datensätzen verknüpft
- Zum Abrufen von Metadaten sind keine Verknüpfungen erforderlich
Nachteile:
- Es sind viele doppelte Spalten erforderlich (sofern keine Vererbung verwendet wird).
- Metadaten und Geschäftsdaten werden nicht getrennt
Erstellen Sie eine allgemeine Metadatentabelle mit und verwenden Sie Soft-Fremdschlüssel, um Daten mit den richtigen Tabellen und Datensätzen zu verknüpfen.
Vorteile:
- Keine Vervielfältigung von Spalten
- Metadaten werden von Geschäftsdaten getrennt
Nachteile:
- Keine direkten Verknüpfungen zwischen Metadaten und Daten (FKs können nicht verwendet werden)
- Joins erfordern eine zusätzliche Bedingung
Erstellen Sie individuelle Metadatentabellen für jede Tabelle, für die Metadaten erforderlich sind.
Vorteile:
- Metadaten sind direkt mit Datensätzen verknüpft
- Metadaten werden von Geschäftsdaten getrennt
Nachteile:
- Viele zusätzliche Tische sind erforderlich
- Es sind viele doppelte Spalten erforderlich (sofern keine Vererbung verwendet wird).
Gibt es mehr Optionen, Vor- oder Nachteile als die hier genannten? Und was ist die beste Vorgehensweise zum Speichern dieser Metadaten?
hstore
oder einerJSON
Spalte Ihr Problem lösen?