SQL eins zu viele
Ich versuche, ein SQL-Schema für ein System zu erstellen, in dem wir habenchannels
jeweils mit einemid
und eine oder mehrerefixtures
. Ich habe Schwierigkeiten, einen Weg zu finden, um diese Eins-zu-Viele-Zuordnung zu implementieren. (d. h. Einschannel
zu vielenfixtures
). Ich benutze dieH2-Datenbankmodul.
Ich kann keinen Tisch haben:
id | fixture
----|----------
1 | 1
1 | 2
2 | 3
CREATE TABLE channel(
id INT NOT NULL PRIMARY KEY,
fixture INT NOT NULL
);
... als diePRIMARY KEY
id
muss seinUNIQUE
.
Ebenso kann ich nicht wie folgt abbilden:
CREATE TABLE channel(
id INT NOT NULL PRIMARY KEY,
f_set INT NOT NULL REFERENCES fixtures(f_set)
);
CREATE TABLE fixtures(
id INT NOT NULL PRIMARY KEY,
f_set INT NOT NULL
);
... wie dies erforderlich istf_set
seinUNIQUE
Ich setze es derzeit wie folgt um:
CREATE TABLE channel(
id INT NOT NULL PRIMARY KEY,
f_set INT NOT NULL REFERENCES fixture_set(id)
);
CREATE TABLE fixtures(
id INT NOT NULL PRIMARY KEY,
f_set INT NOT NULL REFERENCES fixture_set(id)
);
CREATE TABLE fixture_set(
id INT NOT NULL PRIMARY KEY
);
... aber das bedeutet, dass wir eine haben könnenchannel
mit einerfixture_set
die hat keine zugeordnetfixtures
(Nicht ideal).
Ich habe mich gefragt, ob Sie Vorschläge haben, wie ich das angehen könnte (oder wo mein Verständnis falsch ist). Vielen Dank