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

JSONオブジェクトの配列であるrailsフィールド?

    postgresを使用しているので、幸運です。postgresにはネイティブの json タイプ。 postgresにはそのjsonデータに対してクエリを実行できる豊富な演算子ファミリがあるため、これは、シリアル化を使用してデータを何らかの形式のエンコードされた文字列として格納するよりもはるかに優れています。

    postgres 9.4を使用している場合は、jsonbタイプを使用することもできます。これは、処理されたバージョンのデータを保存し(つまり、データを何度も再解析し続ける必要がない)、インデックスを許可するため、一般的に優れています。

    Railsはこれをすぐにサポートします(こちら を参照) )、タイプjson(b)の列を追加する必要があります。移行に

    が含まれている場合
    create_table :damages do |t|
      t.string :description
      t.jsonb :damage_points
    end
    

    次に

    Damage.create(damage_points:  [{left: 40, top: 99}, {left: 100, top: 35}])
    

    ダメージポイントデータストアをjsonとして行を作成します。注意すべき唯一のことは、入力データにはハッシュ内のキーとして記号が含まれていますが、データベースからフェッチすると、常に文字列がキーとして返されることです。



    1. PHPでPDOを使用してストアドプロシージャを作成する

    2. dapper.netを使用してmysqlLAST_INSERT_ID()を返すときの無効なキャスト

    3. 範囲テーブルでの効率的なルックアップ

    4. 自動インクリメンタルデータベースを使用したLaravelupdateOrCreate