Я использовал hstore
ранее через Hibernate / Java. Я сделал это, потому что общий размер карты на строку был небольшим , но таблица, подобная описанной вами, с парами ключ-значение для конкретной строки, имела бы действительно много строк. Возможно, я ошибаюсь, но я помню, что hstore
, возможно, изначально был разработан для небольших карт, но об этом больше нет упоминаний на страницах документации. Кроме того, мои требования к столбцу hstore были связаны только со строкой, любая «отчетность», которая была сделана для всех значений столбца, была предназначена только для разработки.
Хотя, глядя на ваш пример таблицы, выглядело бывы ищете глобально уникальные ключи, где, как я думаю, hstore
наиболее полезно, когда у вас есть один hstore
на строку. Я не думаю, что вам следует решать «глобально уникальные ключи» с помощью hstore и некоторого индекса, пока это возможно.
Обратите внимание, что вы ссылались на неподдерживаемую версию postgresql, вот последняя hstore
документация . В нем есть примеры создания экземпляров (SELECT 'a=>1,a=>2'::hstore;
или hstore('c', '3')
) и раздел примеров содержит остальные примеры, которые вы задали.
Прошло много времени с тех пор, как я последний раз разрабатывал или поддерживалчто-нибудь на postgresql, но, что я помню, поддержка json
шла быстро и выглядела интересно. Если вы храните в столбце Value
что-либо, кроме непрозрачных строк, возможно, стоит взглянуть на поддержку json, поскольку она может поддерживать типы данных json с некоторыми ограничениями .