參考文章: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來說都是不可見的):
刪除所有的關聯關系
查詢:直接使用一對多的查詢方式即可
新聞熱點
疑難解答