我正在尝试为我们拥有的系统构建一个 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任何分配的 a fixtures(不理想)。
我想知道你是否对我如何处理这个有任何建议(或者我的理解是错误的)。谢谢