この種のデータに特別な言葉があるのかどうかは分かりませんが、そのコンセプトはC++ std::variant
に似ています(ただし、PostgreSQLでは変種のような構造を使用するのが理想的ではありません)。PostgreSQLで可能性のあるデータを格納する理想的な方法は?
CREATE TABLE purchases (
purchaseid bigserial,
buyerid bigint,
name text,
...
);
各購入は、例えば、可能性の数が少ないのうちの1つを介して支払うことになります、私はいくつかの列を持つテーブルpurchases
を持っていると仮定例として
チェックまたはビットコイン。各可能性には、保存する必要のある関連フィールドがそれぞれ異なります。小切手で
お支払いは小切手番号と銀行名を保存する必要になる、とビットコインでのお支払いには、送信者のビットコインアドレスおよびアドレスビットコインリターンを保存が必要となります。
チェックインペイメントとビットコインの支払いは、異なるフィールドのために別々のテーブルに置かれるのが賢明です(PostgreSQLについての私の知識はほとんどありません)。私はそれぞれの購入のみがチェックのいずれかまたはビットコインで支払うことができることを知っていれば、このようなデータを保存(およびpurchases
の各行にそれらを関連付ける)するための理想的な方法です何
ではなく両方 ?
最も柔軟なストレージについては、JSONBを使用します。 https://stackoverflow.com/questions/22654170/explanation-of-jsonb-introduced-by-postgresql –
@David「柔軟なストレージ」が必要とは思わない。 (と思う)さらに重要なのいずれか、または構築物の表現(および/または執行)ですが、JSONBは非常にこれを行いません。 – Bernard