PostgreSQL
 sql >> Datenbank >  >> RDS >> PostgreSQL

Wie speichere ich eine Datentabelle in der Datenbank?

Es gibt zwei Typen, die sich besonders zum Speichern von Wörterbüchern eignen als Ganzes:hstore und json - oder das meist überlegene jsonb in Postgres 9.4 oder höher.

Postgres hat auch einen dedizierten xml Datentyp, aber ich würde lieber eine der drei vorherigen Optionen auswählen. XML ist vergleichsweise ausführlich und komplexer (um nicht zu sagen verworren) und könnte für Ihren Zweck übertrieben sein.

Wenn Sie von der Datenbank nur das gesamte Wörterbuch speichern und abrufen möchten, sind dies gute Optionen. Siehe:

Außerdem finden Sie ausführliche Diskussionen über Vor- und Nachteile rund um (Entitätsattributwert) Speicherung in relationalen Datenbanken.

Wenn Sie andere Dinge von der DB wollen, wie referenzielle Integrität, Fremdschlüssel oder verschiedene andere Einschränkungen, einfachen Zugriff auf einzelne Werte, minimale Speichergröße, einfache Indizes usw., schlage ich eine oder mehrere Tabelle(n) mit dedizierten (normalisiert ) Spalten.

Normalisiertes Tabellenlayout

Soweit ich weiß, ist "MyObject" (m ) enthält eine Sammlung von Verweisen auf "OtherObject" (o ). Jedes m ist verwandt mit (24) o und jedes o ist verwandt mit 0-n m - die in einer klassischen n:m-Beziehung implementiert werden kann. Hier sind detaillierte Anweisungen: