参考文章:http://feiyeguohai.iteye.com/blog/1180898/
多对多可以看做是两个一对多;
多对多关系需要三张表, 用户表(user), 组表(group), 用户,组关联表(user_group),
其中user和user_group是一对多关系, group和user_group是一对多关系。
CREATE TABLE `user` ( `id` int(11) NOT NULL auto_increment, `name` varchar(40) collate utf8_unicode_ci default NULL, `passWord` varchar(20) collate utf8_unicode_ci default NULL, `createtime` timestamp NULL default CURRENT_TIMESTAMP, PRIMARY KEY (`id`)) CREATE TABLE `group` ( `id` int(11) NOT NULL auto_increment, `name` varchar(40) collate utf8_unicode_ci default NULL, `createdate` timestamp NULL default CURRENT_TIMESTAMP, `state` int(1) default '0' COMMENT '0:可见;1:不可见', PRIMARY KEY (`id`))CREATE TABLE `user_group` ( `user_id` int(11) default NULL, `group_id` int(11) default NULL, `createdate` timestamp NULL default CURRENT_TIMESTAMP, KEY `FK_user_group_user_id` (`user_id`), KEY `FK_user_group_group_id` (`group_id`), CONSTRAINT `FK_user_group_group_id` FOREIGN KEY (`group_id`) REFERENCES `group` (`id`), CONSTRAINT `FK_user_group_user_id` FOREIGN KEY (`user_id`) REFERENCES `user` (`id`))
添加用户并指定所属组:
先添加单个实体数据(user, group),在添加关联关系的数据(user_group);
删除组:
先删除关联关系(user_group),在删除组信息
修改组的可见性(同删除组一样,对user来说都是不可见的):
删除所有的关联关系
查询:直接使用一对多的查询方式即可
新闻热点
疑难解答