Database / Supabase Intermediate to Advanced Interview Questions
What is the difference between JSONB and a fully normalized relational schema in Postgres?
A normalized schema splits data into separate tables connected by foreign keys, with each fact stored once; a JSONB column instead stores a whole nested document as a single value inside one row, queryable with operators like ->, ->>, and @>, and indexable with a GIN index.
Normalization enforces consistency through foreign keys and makes cross-entity queries (joins) efficient, but requires a schema change whenever the shape of the data changes. JSONB tolerates a flexible, evolving shape without a migration — useful for things like a form's arbitrary custom fields, third-party API payloads you don't fully control, or settings blobs — but it trades away foreign key enforcement and makes some queries (like aggregating across a specific nested field on a very large table) less efficient than an equivalent normalized column would be.
More Related questions...