Um-para-muitos do SQL

Eu estou tentando construir um esquema SQL para um sistema onde temoschannels, cada um com umide um ou maisfixtures. Estou com dificuldade em encontrar uma maneira de implementar esse mapeamento de um para muitos. (ou seja, umchannel para muitosfixtures). Estou usando oMecanismo de banco de dados H2.

Eu não posso ter uma mesa:

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

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

... Enquanto oPRIMARY KEY id devemos serUNIQUE.

Da mesma forma, não consigo mapear como segue:

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

... como isso é necessáriof_set ser estarUNIQUE

Atualmente estou implementando da seguinte maneira:

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

... mas isso significa que podemos ter umchannel com umfixture_set que não tem nenhum atribuídofixtures (Não é ideal).

Eu queria saber se você tinha alguma sugestão de como eu posso abordar isso (ou onde meu entendimento está errado). obrigado

questionAnswers(2)

yourAnswerToTheQuestion