实体:
1.用户
2.用户组
3.地区
需求如下:
1.一个用户可隶属于多个用户组
2.一个用户组包含多个用户
3.一个用户组隶属于一个地区
4.一个地区有多个用户组
5.一个用户在一个地区只能隶属于零个或一个用户组
------解决方案--------------------------------------------------------
地区表(id,name)
用户表(id,name)
用户组表(id,地区id,name)
用户与用户组关系表(用户id,用户组id),添加记录时先根据用户组id判断是否已存在冲突的地区id,如
insert into 用户与用户组关系(用户id,用户组id) select @用户id,@用户组id where (select top 1 用户id from 用户与用户组关系 where 用户id=@用户id and 用户组id in (select id from 用户组 where 地区id=(select top 1 地区id from 用户组 where id=@用户组id)
)) is null