sql >> データベース >  >> RDS >> PostgreSQL

JSONBはPostgreSQL配列を役に立たなくしますか?

    ほとんどの場合、正規化されたスキーマ を使用します。 テーブルoption_tagを使用 テーブル間の多対多の関係を実装するoption およびtag 。ここでのリファレンス実装:

    あらゆる点で最速のオプションではないかもしれませんが、参照整合性、制約、すべてのデータ型、すべてのインデックスオプション、安価な更新など、すべてのDB機能を提供します。

    完全を期すために、オプションのリストに追加してください:

    • hstore (良いオプション)
    • xml hstoreよりも冗長で複雑です またはjsonb 、したがって、XMLで操作する場合にのみ使用します。
    • 「コンマ区切り値の文字列」(非常に単純で、ほとんどの場合、不適切なオプション)
    • EAV(エンティティ-属性-値)または「名前-値ペア」(ほとんどの場合、悪いオプション)
      dba.SEに関するこの関連質問の詳細:

    リストが表示用であり、ほとんど更新されない場合は、プレーン配列を検討します。これは通常、他の配列よりも小さく、パフォーマンスが優れています。

    JoshBerkusによるブログエントリ を読む @a_horseは彼のコメントにリンクされています。ただし、選択した読み取りケースに焦点を当てていることに注意してください。ジョシュは認めます:

    そして、特に同時ロードで単一のタグを大幅に変更する場合は、正規化されたアプローチが大きな効果を発揮します。

    jsonb とにかくJSONを操作する場合にのみ適切なオプションであり、JSONを「現状のまま」保存および取得できます。



    1. SailsJSとmySQLのカスタムID名がブループリントで機能しない

    2. XMLとMySQLデータベースの使用の違いはどこにありますか?どちらを使うべきですか?

    3. PostgreSQL9.2でhstoreキーの名前を変更する

    4. 良いアイデア/悪いアイデア?サブクエリ結果の小さなセットの外でMySQLRAND()を使用しますか?