Если ваши данные всегда содержат одну и ту же простую структуру, я не вижу причин хранить их как JSON.Вам следует подумать о том, чтобы просто хранить его в таблице со столбцами host
и type
.
INSERT INTO table(my_host_column, my_type_column) VALUES
(my_json ->> 'host', my_json ->> 'type');
Это значительно упрощает многие вещи (поиск, обновление, ...).В вашем случае Postgres предлагает тип inet
для столбцов IP-адресов.Такой столбец может проверять достоверность вашего host
, например (https://www.postgresql.org/docs/current/static/datatype-net-types.html)
. Вы можете в любой момент восстановить JSON с помощью json_build_object('host', my_host_column, 'type', my_type_column)
(https://www.postgresql.org/docs/current/static/functions-json.html)).
Но если вы все еще хотите сохранить JSON как есть:
Если вы не хотите ничего с ним делать, сохраните его как тип text
(что яопределенно не рекомендую, так как вы не знаете, что принесет будущее.) Если вы хотите использовать функции JSON в Postgres, вы должны сохранить его как json
или jsonb
тип (https://www.postgresql.org/docs/current/static/datatype-json.html).
jsonb
имеет в основном накладные расходы на экономию места (больше метаданных), но часто значительно быстрее в операциях.
Дальнейшее чтение :
ПояснениеJSONB, представленный PostgreSQL
https://www.compose.com/articles/faster-operations-with-the-jsonb-data-type-in-postgresql/ttps://www.compose.com/articles/faster-operations-with-the-jsonb-data-type-in-postgresql/