Doppel-Fremdschlüssel postgresql

Ich bin versucht, einen doppelten primary key als foreign key.

Create table AAA (
   AAA_id int primary key
);

create table BBB (
   AAA_id int,
   BBB_name character varying(20),
   primary key (AAA_id, BBB_name)
);

create table CCC (
    AAA_id,
    BBB_name,
    DDD_id,

    ... ???
);

Tabelle AAA ist ein Objekt

Tabelle BBB ist vielen zu eins mit AAA und hält Aliase AAA

Ich versuche, erstellen Sie eine pivot-Tabelle, CCC hält ein viele zu eins zwischen DDD und BBB.

Ich denke, ich möchte etwas wie

create table CCC (
    AAA_id,
    BBB_name,
    DDD_id,
    foreign key (AAA_id, BBB_name) references BBB(AAA_id, BBB_name) on update cascade
);

wo beide AAA_id und BBB_name sind foreign keys, aber Sie sind auch immer auf der gleichen Zeile in BBB.

aber das ist natürlich nicht gültig. was ist der beste Weg, um diese Art von Verhalten in postgreSQL?

Es ist vollkommen gültig! Aber es ist nicht als ein "double" - Taste, es ist eine "Verbindung" - Taste.

InformationsquelleAutor David Chan | 2012-02-13

Schreibe einen Kommentar