私は、データの種類が「A
」、「B
」、「C
」の3種類あるとします。次のようになります。PostgreSQLでさまざまな種類のフィードを整理する最良の方法は何ですか?
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"foo": "bar",
"baz": "zab",
"cat": "dog"
}
Bは次のようになります。
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"foo": "bar",
"baz": "zab",
"nak": "kan"
}
そしてCは次のようになります。
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"created_at": "2016-11-27 02:24:12.889637+00",
"author": "7d16389b-2d66-4c59-bb6a-87992a60d112",
"baz": "zab",
"cat": "dog"
}
あり、その分野での(小さめの)バリエーションがありますが、彼らが持っていますいくつかの一貫したフィールド(「メタデータ」とも言います)。これらはそれぞれ独自のデータ型を表します.Bは異なるフィールドを持つAではありません。しかし、後の時点で私は、「フィード」に3つのすべての最も最近のを結合する必要があります。
[{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "A",
},
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "B",
},
{
"id": "4ccdfb68-ce18-4361-bd90-e61f1fcf8d2b",
"type": "C",
}]
が、私は彼らの共有の場とJSONBフィールドを持つ3つのすべてを表す単一のテーブルを作成する必要があり、または彼らがすべき独自のテーブルを持ち、そのテーブルに対してユニオンクエリーを実行しますか?明確にするために、フィードには共有フィールドしかありません。これも前方互換性が必要です。将来のタイプにはID、created_atフィールド、作成者がありますが、それ以外には公正なゲームだということを知っています。
ありがとうございます!お気軽に詳細をお尋ねください。
編集:ああ、はい、私は(いくつかの将来の時点で)私もしたいことは言う私はすべての行「のfooを検索することができますように(行がそれを持っている場合)、フィールドにインデックスを作るのを忘れて"=="バー "。行にfooがない場合は、これを破るべきではありません。
私は 'type'が列を含めるのを忘れていました。それが存在します :) – AniSkywalker