Sembra noioso ma vorrei creare un tavolo per ogni prodotto nella somma.
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);
probabilmente si desidera memorizzare alcuni metadati insieme con i record di ogni tipo:
CREATE TABLE envelope (id uuid PRIMARY KEY,
t timestamptz NOT NULL DEFAULT now(),
by text NOT NULL DEFAULT sessions_user);
E questo suggerisce un vincolo di chiave esterna:
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);
E se siete ancora più severi si potrebbe immaginare di memorizzare una colonna ty
con il nome del tipo e utilizzarlo per costruire una chiave esterna composita. (Come descritto sotto "Where Not to Use Table Inheritance" nel blog LedgerSMB.)
Potrebbe per favore fornire un esempio di dati reali che si potrebbero desiderare di memorizzare? – Shnugo
La mia prima idea sarebbe XML. È possibile memorizzare qualsiasi tipo di dati gerarchicamente strutturati insieme a metadati descrittivi (attributi). Ma avrai bisogno di alta logica per interpretare questo ... – Shnugo
@shnugo Come menzionato sono interessato ai database relazionali. – Halst