【发布时间】:2021-01-26 09:57:53
【问题描述】:
如果两个事件是可组合的,我想存储。 这是一个 n 到 n 的关系,所以我需要一个带有这些约束的数据透视表:
- PK(event_1, event_2) = PK(event_2, event_1)
- event_1 是对表事件中 id 的引用
- event_2 是对表事件中 id 的引用
我试图用这个查询创建我的表:
event_id_1 INT UNSIGNED,
event_id_2 INT UNSIGNED,
cumulative_place INT,
PRIMARY KEY(event_id_1,event_id_2),
FOREIGN KEY(event_id_1)
REFERENCES events(id)
ON DELETE CASCADE,
FOREIGN KEY(event_id_2)
REFERENCES events(id)
ON DELETE CASCADE
);
关注 MySQL Documentation
我对此有一些疑问:
- 它是否针对搜索查询进行了优化,例如,如果我想要所有可与 event1 组合的事件,无论 event1 位于第一列还是第二列?
- 我是否需要手动管理 INSERT 和 UPDATE 或 MySQL 的主键来完成这项工作?例如,我可以只插入 (event1, event2) 主键的累积位置编号,如果行存储为 (event2, event1) 这也可以。
【问题讨论】:
标签: mysql composite-primary-key