MySQL建表一对多,通常是指一张表中的某个字段可以有多个值,也就是一个主表和一个从表。主表中记录一般为唯一的方式表示从表中的相关数据,这种情况下就需要使用外键关联两张表,从而实现一对多的表关系。
CREATE TABLE `主表` (`id` int(11) NOT NULL AUTO_INCREMENT,`字段1` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;CREATE TABLE `从表` (`id` int(11) NOT NULL AUTO_INCREMENT,`主表id` int(11) NOT NULL,`字段2` varchar(255) DEFAULT NULL,PRIMARY KEY (`id`),KEY `外键索引` (`主表id`),CONSTRAINT `外键名称` FOREIGN KEY (`主表id`) REFERENCES `主表` (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8;
以上为建立一对多关系的两张表,在从表中通过主表id字段与主表相关联,并在该字段上建立外键关系。通过这种方式,一条主表数据可以对应多条从表数据,而从表数据则必然存在对应的唯一主表数据。
总结:建表一对多关系,需要在从表中添加一个外键字段,并在该字段上建立外键关系。外键字段保存主表的唯一标识,并在查询时通过外键关系将主表与从表数据关联起来,从而实现一对多关系的查询。