Normalisierte Tabellen vor JSONB in PostgreSQL
Kern-Entitäten werden normalisiert modelliert, mit Constraints und Fremdschlüsseln. JSONB wird gezielt für tatsächlich schemalose oder selten abgefragte Randdaten eingesetzt.
Was ist das? · Decision Record
Eine dokumentierte Architekturentscheidung im ADR-Format — Kontext, geprüfte Optionen, Begründung und Konsequenzen. Eine konkrete Entscheidung, kein allgemeiner Leitfaden. Zur Übersicht
- Status
- Angenommen
- Kennung
- ADR-003
- Überprüfung
- Zu prüfen bei signifikanten Änderungen an Abfragemustern oder Datenvolumen.
Kontext
PostgreSQL bietet mit JSONB flexible, schemalose Speicherung. Für strukturierte Daten stellt sich die Frage: normalisierte Tabellen oder JSONB-Spalten?
Problem
JSONB ist verlockend flexibel, verlagert aber Struktur und Integrität aus der Datenbank in den Anwendungscode. Normalisierte Tabellen erzwingen Struktur, sind aber weniger flexibel bei häufigen Schemaänderungen.
Was wir geprüft haben.
- A
Normalisierte Tabellen
Struktur, Constraints und Indizes in der DB; klare Beziehungen.
- B
JSONB-Spalten
Flexibel und schemalos — Integrität liegt im Code.
- C
Gemischt
Normalisiert für Kern-Entitäten, JSONB für echte Randdaten.
Was wir entschieden haben.
Kern-Entitäten werden normalisiert modelliert, mit Constraints und Fremdschlüsseln. JSONB wird gezielt für tatsächlich schemalose oder selten abgefragte Randdaten eingesetzt.
Warum diese Entscheidung
Datenintegrität gehört in die Datenbank, nicht in verstreute Anwendungslogik. Normalisierte Strukturen sind abfragbar, indizierbar und selbstdokumentierend. JSONB ist dort richtig, wo die Struktur echt variabel ist — nicht als Abkürzung um Modellierung herum.
Konsequenzen
- Schemaänderungen an Kern-Entitäten erfordern Migrationen — bewusst, versioniert, nachvollziehbar.
- Häufig abgefragte JSONB-Felder brauchen gezielte Indizes (GIN) und eine dokumentierte erwartete Form.
- Die Grenze zwischen Kern- und Randdaten ist eine Entwurfsentscheidung, die begründet wird.
Verworfene Alternativen
- JSONB als DefaultVerlagert Integrität in den Code und erschwert Abfragen und Migration.
- Normalisierung um jeden PreisErzwingt Struktur auch dort, wo Daten echt schemalos sind.
Setzen Sie Ihren Engineering-Weg fort.
Verwandte Konzepte, Entscheidungen, Playbooks und Standpunkte — als zusammenhängender Pfad, nicht als Linkliste.
Technologien
Verwandte Konzepte
Vor einer ähnlichen Entscheidung?
Wir treffen sie nicht aus dem Bauch. Sprechen Sie mit der Geschäftsführung — technisch, ohne Vertrieb.
