我无法弄清楚谷歌的哪些术语,所以帮助标记这个问题或只是以相关问题的方式向我指出会有所帮助。
我相信我有一个典型的多对多关系:
CREATE TABLE groups (
id integer PRIMARY KEY);
CREATE TABLE elements (
id integer PRIMARY KEY);
CREATE TABLE groups_elements (
groups_id integer REFERENCES groups,
elements_id integer REFERENCES elements,
PRIMARY KEY (groups_id, elements_id));
我想要一个约束,即给定的一组elements_ids只能有一个groups_id。
例如,以下是有效的:
groups_id | elements_id
1 | 1
1 | 2
2 | 2
2 | 3
以下内容无效,因为第 1 组和第 2 组将是等效的。
groups_id | elements_id
1 | 1
1 | 2
2 | 2
2 | 1
不是每个元素子集都必须有一个组(这不是幂集),但可能会形成新的子集。我怀疑我的设计不正确,因为我实际上是在谈论将组添加为单个实体。
如何为元素子集创建标识符而不存在重复子集的风险?