您现在的位置>>.Net中文社区>>数据库

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

浏览量: 作者:佚名 来源:互联网

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

  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 ,--用来给成员排序(也可以用来表示成员之间的大小)  
本站部份资源来于互联网,只供学习之用,不得用于商业,如有侵犯版权请联系告知,本站将第一时间删除!
站长QQ:373638128 邮箱:navy1015@126.com
copyright © 2008 .Net中文社区 ASPXCS.NET™.All Rights Reserved 滇ICP备08102132号