Postgres has a lot of support for JSON (even indexing). I want to just put 1 jsonb field called
I can think of a few reasons:
If the JSON blob has foreign keys to other columns, I don't think you can add a
With columns you can enforce
NOT NULL constraints very easily, but with JSON you'll have to write
CHECK constraints for each required value.
JSON has fewer types than Postgres. For instance, no date/time/timestamp, no intervals, no ranges, just one kind of numeric type, no IP addresses, no binary data.
Over time if you add/move/delete fields in the JSON structure, you'll find that older rows become obsolete and have JSON your app doesn't understand. Using regular columns forces you to keep the whole table up-to-date.