2017-04-06 14 views
1

私はPostgreSQLのテーブルにキー値文字列の単純なマップをフィールドとして格納したいと思っています。私は地図全体を扱うつもりです。すなわち、常に地図全体を選択し、そのキーまたは値によって決して照会することはない。キー値マップを格納するためのベストPostgreSQLデータ型?

私はhstorejsonjsonbとを比較記事を読んだが、それらは私がしている私の要件に最も適合しているデータ・タイプを選択助けにはならなかった。

  • のみ、キーと値を、入れ子の必要はありません。
  • 文字列のみ、その他の型もnullもありません。
  • 私の分野での使用が想定されるストレージ効率。
  • クエリされたマップの高速解析。

私のユースケースに最も適したデータ型は何ですか?

+1

確実に 'hstore' –

+0

IIRC、' jsonb'はネストされた 'hstore'として実装されているので、動作するはずです。 – jmelesky

+0

@a_horse_with_no_nameもしあなたがそれについて詳述したら、私はそれを生きています:) –

答えて

1

あなたはキーマップであるhstoreを使うことができますが、私は個人的には私たちがjsonbにします。しかし、少し過度のことですが、言語はjsonをネイティブに自分で解読することなく変換することができます。

jsonでは、保存しようとしている情報のために単純なオブジェクトまたは配列を保存しています。

インデックスをサポートし、効率的に保存されます。

テキスト内のHstoreは、言語が認識できないため、挿入またはクエリするためにデータを処理する必要があるカスタムタイプのフォーマットです。

+0

プログラミング言語に依存して、 'hstore'は"変換 "を必要としません。例えば、JDBCドライバは単に 'hstore'カラムの内容の' Map'を返します –

関連する問題