SQL jeden do wielu

Próbuję zbudować schemat SQL dla systemu, w którym mamychannels, każdy zidi jeden lub więcejfixtures. Mam problem ze znalezieniem sposobu na wdrożenie tego mapowania jeden-do-wielu. (tj. jedenchannel za dużofixtures). UżywamSilnik bazy danych H2.

Nie mogę mieć stołu:

 id | fixture
----|----------
  1 |    1
  1 |    2
  2 |    3

CREATE TABLE channel(
  id INT NOT NULL PRIMARY KEY,
  fixture INT NOT NULL
  );

... jakoPRIMARY KEY id musi byćUNIQUE.

Podobnie nie mogę mapować w następujący sposób:

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
  );

... jak to wymaganef_set byćUNIQUE

Obecnie wdrażam go w następujący sposób:

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
  );

... ale to oznacza, że ​​możemy miećchannel zfixture_set który nie ma żadnego przypisanegofixtures (Nieidealny).

Zastanawiałem się, czy masz jakieś sugestie, jak mogę się do tego zbliżyć (lub gdzie moje zrozumienie jest błędne). Dzięki

questionAnswers(2)

yourAnswerToTheQuestion