SQL один ко многим
Я пытаюсь построить схему SQL для системы, в которой мы имеемchannels
каждый сid
и один или несколькоfixtures
, У меня возникают трудности с поиском способа реализовать это отображение один-ко-многим. (т.е. одинchannel
слишком многоfixtures
). Я используюЯдро базы данных H2.
Я не могу иметь стол:
id | fixture
----|----------
1 | 1
1 | 2
2 | 3
CREATE TABLE channel(
id INT NOT NULL PRIMARY KEY,
fixture INT NOT NULL
);
... какPRIMARY KEY
id
должно бытьUNIQUE
.
Точно так же я не могу отобразить следующее:
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
);
... как это требуетсяf_set
бытьUNIQUE
В настоящее время я реализую это следующим образом:
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
);
... но это означает, что мы можем иметьchannel
сfixture_set
который не имеет назначенногоfixtures
(Не идеально).
Мне было интересно, если у вас есть какие-либо предложения о том, как я могу подойти к этому (или где мое понимание неверно). Спасибо