Лучший способ хранения данных json в PostgreSQL

#json #postgresql

#json #postgresql

Вопрос:

У меня есть документы json, подобные этомуhttps://www.rfc-editor.org/rfc/rfc7643#section-8.2 , как вы можете видеть, документ также имеет несколько сложных многозначных атрибутов. Здесь каждый документ является отдельным идентификатором.

В Postgres я планирую хранить каждый ключ в отдельном столбце, например, атрибут «электронные письма» будет находиться в другой строке, а «имя» — в другой строке.

Имеет ли это какой-либо смысл, или я должен просто выгрузить весь JSON как единый документ, какой он есть.

Комментарии:

1. Может быть, это: postgresqltutorial.com/postgresql-json и это: postgresql.org/docs/9.5/functions-json.html поможет вам принять решение.

2. Работать с моделью EAV намного сложнее, чем с одним значением JSON, поэтому, если вы хотите пойти по пути де-нормализации, сохраните его в одном jsonb столбце. Но почему бы не создать должным образом нормализованную модель с таблицей users и отношениями «один ко многим» к таблицам address и email ?

3. @a_horse_with_no_name, я не думаю, что наличие отдельной таблицы для каждого свойства работает, потому что у клиентов есть возможность расширить схему и, возможно, придется отслеживать слишком много таблиц. Сравнение EAV и одного JSON, которые, по вашему мнению, будут дорогостоящими для чтения / записи.

4. Я использую базу данных postgres

5. Это зависит от вашей нагрузки: как вставляются данные и какие запросы будут выполняться. В общем, хранение в отношениях позволит лучше использовать функции PG и оптимизации.