热门:网页模板.net视频教程JQueryMVCjsonExtJs源码示例三级联动JQuery菜单
您现在的位置:.Net中文社区>> 数据库>>正文内容

用户表和部门表的关联,非主流性,但是能解决好多问题

发布时间:2010年02月06日点击数: 佚名

见过大部分的用户和部门的表以及他们的关联,大概如下:

  1. create table Users  
  2. (  
  3.      UserAccount nvarchar(50) ,  
  4.      UserName nvarchar(50),  
  5.      GroupID int --部门ID  
  6. )  
  7.  
  8. create table Groups  
  9. (  
  10.      GroupID int,  
  11.      GroupName nvarchar(50),  
  12.      GroupParentID int,  
  13.      GroupLeaderID nvarchar(50)--领导帐号  

这样子的表结构咋一看确实完成了用户和部门的关联,其实仔细想想这个设计很有局限性,如果一个用户属于多个部门,如果一个部门要有多个领导,那么这个设计肯定是不能满足的,

我现在贴出我的设计给大家拍砖,我主要在上面表的基础上又加了两张表,一张专门用来保存部门领导(解决一部门多领导),一张主要用于保存部门的成员,换句话就是员工所属部门(解决一用户多部门)

  1. --领导表,用于保存所有领导的信息  
  2. create table Leaders  
  3. (  
  4.    GroupID int,--部门名称  
  5.    UserAccount nvarchar(50),--领导帐号  
  6.   JobTitle nvarchar(50),--职位名称  
  7.   isPriaryJop bit,--该职务是否是他的首要职务(有可能有多职位)  
  8.   isLeaderSuper bit,--如果一个部门有多个领导,该字段唯一在该人是该部门所有领导的头  
  9.   orders int ,--如果一个部门有所个领导,用来给领导排序(也可以用来表示领导之间的大小)  
  10.     
  11. )  
  12.    
  13. --成员表,用于保存部门非领导的成员  
  14.  
  15.  
  16. create table members  
  17. (  
  18.      GroupID   
  19. int,--部门名称  
  20.    UserAccount nvarchar(50),--成员帐号  
  21.    isPriaryJop bit,--该职务是否是他的首要职务(有可能有多职位)  
  22.    orders int ,--用来给成员排序(也可以用来表示成员之间的大小)  

更多模板/案例展示

亚太盛典国际婚纱摄影 本案例由亚太盛典国际婚纱公司所部署,精美的界面,合理的布局是网站的一大特色!
亚太盛典国际婚纱摄影 本案例由亚太盛典国际婚纱公司所部署,精美的界面,合理的布局是网站的一大特色!
关于我们 | 联系我们 | 团队日志 | 网站地图 | 网站合作