#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
и3. @a_horse_with_no_name, я не думаю, что наличие отдельной таблицы для каждого свойства работает, потому что у клиентов есть возможность расширить схему и, возможно, придется отслеживать слишком много таблиц. Сравнение EAV и одного JSON, которые, по вашему мнению, будут дорогостоящими для чтения / записи.
4. Я использую базу данных postgres
5. Это зависит от вашей нагрузки: как вставляются данные и какие запросы будут выполняться. В общем, хранение в отношениях позволит лучше использовать функции PG и оптимизации.