1.一对一关系
Ex:身份证表与用户表
在身份证表中添加 用户表中的主键栏位作为 身份证表中的外间和主键
这样就保证了 两表之间数据的关联和唯一性
CREATE TABLE `card` (
`card_number` int(11) DEFAULT NULL,
`card_time` datetime DEFAULT NULL,
`user_id` int(11) NOT NULL,
PRIMARY KEY (`user_id`),
CONSTRAINT `y_card` FOREIGN KEY (`user_id`) REFERENCES `users` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
CREATE TABLE `users` (
`user_id` int(11) NOT NULL,
`name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;
2.一对多关系
在“多”表中添加关联 “一”表主键的外键
Ex 用户表与角色表
一个用户可以有多种角色
CREATE TABLE `user` (
`user_id` int(11) NOT NULL AUTO_INCREMENT,
`user_name` varchar(255) DEFAULT NULL,
PRIMARY KEY (`user_id`)
) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `role` (
`
role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(255) DEFAULT NULL,
`user_id` int(11) DEFAULT NULL,
PRIMARY KEY (`
role_id`),
KEY `y_role` (`user_id`),
CONSTRAINT `y_role` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8;
3.多对多的关系
使用中间表,这个中间表不设置主键