MySQL 外键是一种数据库设计模式,用于确保表之间的关系和一致性。在跨表强制执行一对一的关系时,可以利用外键来实现这个目标。
下面是使用外键跨表强制实施一对一关系的方法:
在进行一对一关系设计时,父表通常表示基本实体或主数据,而依赖表表示一个或多个辅助数据。
在 MySQL 中创建相关表,确保父表和依赖表结构中包含共同的字段。
CREATE TABLE parent (
id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(255) NOT NULL
);
CREATE TABLE child (
id INT AUTO_INCREMENT PRIMARY KEY,
parent_id INT,
FOREIGN KEY (parent_id) REFERENCES parent(id)
);
为父表和依赖表中插入对应数据。
INSERT INTO parent (name) VALUES ('Parent 1');
INSERT INTO child (parent_id, name) VALUES (1, 'Child 1');
INSERT INTO child (parent_id, name) VALUES (1, 'Child 2');
INSERT INTO child (parent_id, name) VALUES (1, 'Child 3');
此时,parent 和 child 关系是一对多的关系。如果需要转换为一对一关系,可以通过设置外键来实现。
通过设置 PRIMARY KEY 或 UNIQUE KEY 约束关联子表的 id 和父表的 id。
ALTER TABLE child ADD FOREIGN KEY (parent_id) REFERENCES parent(id);
现在 parent_id 外键将限制子表中的重复 id。
INSERT INTO child (parent_id, name) VALUES (1, 'Child 4');
这条记录会失败。
总之,MySQL 外键可以跨表强制实施一对一关系,通过设置关联约束,保证父表和依赖表之间的一一对应关系。
领取专属 10元无门槛券
手把手带您无忧上云