ほとんどの場合、テーブルoption_tag
と. ここでの参照実装:option
tag
あらゆる点で最速のオプションではないかもしれませんが、参照整合性、制約、全範囲のデータ型、すべてのインデックス オプション、安価な更新など、DB 機能の全範囲を提供します。
完全を期すために、オプションのリストに追加します。
hstore
(良いオプション)
xml
hstore
またはよりも冗長で複雑なjsonb
ので、XML を操作する場合にのみ使用します。
- 「コンマ区切り値の文字列」 (非常に単純で、ほとんどが不適切なオプション)
- EAV (Entity-Attribute-Value) または「名前と値のペア」(ほとんどが不適切なオプション)
dba.SE に関するこの関連する質問の詳細:
リストが表示用でめったに更新されない場合は、プレーンな配列を検討します。これは通常、他のものよりも小さく、パフォーマンスが優れています。
コメントにリンクされているJosh Berkus @a_horse のブログ エントリを読んでください。ただし、選択された読み取りケースに焦点を当てていることに注意してください。Josh は次のように認めています。
比較書き込み速度をテストしていないことに気づきました。
そして、特に同時負荷の下で単一のタグを大幅に変更する場合は、正規化されたアプローチが大きな効果を発揮します。
jsonb
とにかくJSONを操作する場合にのみ良いオプションであり、JSONを「そのまま」保存および取得できます。