Si, comme vous le dites, vous devez récupérer les champs avec le document, la variante hstore dénormalisée est préférable car le serveur pourra récupérer l'intégralité du document à partir d'un seul emplacement sur le disque au lieu d'utiliser plusieurs emplacements pour indexer le document avec les champs. . Le seul problème que je vois avec hstore est une syntaxe quelque peu non conventionnelle. Peut-être plus facile de travailler avec JSON. PostgreSQL 9.4 aura un excellent support pour JSON binaire (indexé) . L'utilisation de JSON binaire est recommandé par les auteurs de hstore, BTW.
Donc, un plan pourrait être d'utiliser un json
colonne dans 9.3, puis convertissez-la en jsonb
en 9.4.