私は面倒ですが、私は合計で各製品のテーブルを作成します。あなたも厳しいあなたをしている場合
CREATE TABLE foo (id uuid PRIMARY KEY REFERENCES envelope);
CREATE TABLE bar (id uuid PRIMARY KEY REFERENCES envelope,
s text NOT NULL);
CREATE TABLE baz (id uuid PRIMARY KEY REFERENCES envelope,
a integer NOT NULL,
b integer NOT NULL,
c integer NOT NULL);
そして:
CREATE TABLE foo (id uuid PRIMARY KEY);
CREATE TABLE bar (id uuid PRIMARY KEY,
s text NOT NULL);
CREATE TABLE baz (id uuid PRIMARY KEY,
a integer NOT NULL,
b integer NOT NULL,
c integer NOT NULL);
はおそらく、各タイプのレコードと一緒にいくつかのメタデータを格納したい:
CREATE TABLE envelope (id uuid PRIMARY KEY,
t timestamptz NOT NULL DEFAULT now(),
by text NOT NULL DEFAULT sessions_user);
そして、これは外部キー制約を示唆します の型の名前を持つty
列を格納し、これを使用して複合外部キーを構築することができます。 (LedgerSMBブログで"Where Not to Use Table Inheritance"として記載されている )
保存したい実際のデータの例を教えてください。 – Shnugo
私の最初の考えはXMLでしょう。階層的に構造化されたあらゆる種類のデータを記述的なメタデータ(属性)と一緒に格納できます。しかし、これを解釈するには高い論理が必要です。 – Shnugo
@shnugo私が言及しているように、私はリレーショナルデータベースに興味があります。 – Halst