create view in view

时间:2022-05-03 02:00:14
CREATE VIEW view_region2role AS (
SELECT region_set_id, region_set_name, GROUP_CONCAT(id) gc_id, GROUP_CONCAT(name) gc_name FROM
view_region_role
GROUP BY region_set_id
)

#总结 角色表-关系表-区域表 N-N 关系表 结构 主键id-角色id-区域id集  现在要处理为单个区域分配角色
#处理办法 ; 如果为单个角色分配区域,即可直接更新关系表某行或新增行(命名为w顺向关系表操作w);当前问题;将w逆向向关系表操作w转化为顺向关系表操作
#转化办法;该关系表打散成单行,形成“一行为一个区域一个角色”,此时关系表对于角色表和区域表都是地位平等的,再转化成单区域-多角色表
# 角色表 LEFT JOIN  关系表  (关键点在左联条件,LIKE CONCAT)---》GROUP_CONCAT 即形成顺向操作临时表---》对该临时表读写---》在退化成、逆转录成原关系表关系,再更新读写原关系表

 DROP TABLE IF EXISTS `region_set`;
CREATE TABLE `region_set` (
`region_id` int(11) NOT NULL AUTO_INCREMENT,
`region_name` varchar(33) NOT NULL,
PRIMARY KEY (`region_set_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `region_set`;
CREATE TABLE `role` (
`role_id` int(11) NOT NULL AUTO_INCREMENT,
`role_name` varchar(50) COLLATE utf8_unicode_ci DEFAULT ''
PRIMARY KEY (`role_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8; DROP TABLE IF EXISTS `r_role_region`;
CREATE TABLE `r_role_region` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`role_id` int(11) NOT NULL,
`region_id_set` tinytext,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;