当前位置: 代码迷 >> 高性能数据库开发 >> 这种情况,数据库关系如何定义
  详细解决方案

这种情况,数据库关系如何定义

热度:5604   发布时间:2013-02-26 00:00:00.0
这种情况,数据库关系怎么定义
实体:
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
  相关解决方案