【自然框架】之通用权限(二):人员表组

 

      继续,这是第二章了。本来想在这一章里面介绍三个表组来着,但是我有点写不好的感觉,还是多分几章吧,这一章就只介绍人员表组。第二章到第五章主要是介绍表结构。我是习惯使用Excel来设计表,一开始的时候只能记录表名、字段名、字段类型、字段说明等信息,但是一直没能找到如何使用Excel来体现出来表之间的关系。前一阵子(好像是去年)突然想到了可以使用“图表”+图形(比如箭头)的方式来做表关系,第一章里的那几个图就是这么弄出来的,看着还凑合吧。

      至于为什么不用PowerDesigner来做,个人习惯问题吧。Excel的特点是,可以很清晰的看到字段的信息,因为往往字段比表关联还要重要,所以我还是习惯使用Excel。现在更是离不开了。我现在可以做到依据这个Excel里面的记录来生成表(在SQL Server里面建立表),生成配置信息。而当需求有变化的时候,我也能做到Excel数据库文档、数据库、配置信息三者的同步更新。这个同步更新并不是手动去修改,而是通过一个“项目、配置信息管理程序”来实现的,而这个“程序”也是自然框架的一部分,有一点IDE的苗头。呵呵。

(一说“通用”我就想起了美国的那个通用,哎那么大的公司就破产了。)

 

通用权限想要写的文章目录:(这是第二章)

1、 简介、数据库的总体结构
2、 介绍人员表组
3、 介绍组织结构表组
4、 介绍角色表组
5、 介绍“项目自我描述表组”
6、 权限到节点
7、 权限到按钮
8、 权限到列表(表单、查询)
9、 权限的验证
10、 资源方面的权限
11、 角色管理的程序(给客户用的)
12、 权限下放
13、 个性化设置

A、 【自然框架】之通用权限(外传):杂谈

 

 

人员表组

 

      先说一下表组,表组就是相关的一组表合在一起,表达一个整体的事物。这么做的目的是避免表多了之后,画出来的关系图非常混乱的情况。人员表组就是人员密切相关的表。是密切相关的,而不是有一点关系的都放进来,因为80%以上的表都会和人员有关系,都放进来就失去意义了。

 
先看下图:
 

 

 

     人员表组里的“老大”我给起个名字叫做“Person_Info”,就是人员的自然信息(基本信息),比如姓名、性别、出生日期等,每个人都会有这些信息,而且只有一份(如果需要记录曾用名的话,那么再加一个“曾用名”的字段)。这个表就是人员的基础表(有一点基类的味道),“Person_Info”的主键叫做“PersonID”,int 自增。
      具体字段如下:

 

字段名 中文名  字段类型 字段大小  默认值 是否为空  说明
PersonID 主键 int 4 1 0 主键
姓名 姓名 nvarchar 50 _ 0 姓名
性别 性别 nchar 1 _ 0 性别。直接写汉字的男、女
出生日期 出生日期 smalldatetime 4 GetDate() 0 出生日期
身份证号码 身份证号码 varchar 22 _ 0 身份证号码
国家 国家 nvarchar 20 _ 0 国家
省ID 所在省份 int 4 1 0 外键
市ID 所在城市 int 4 1 0 外键
邮编 邮编 nvarchar 6 _ 0 邮政编码
住址 员工住址 nvarchar 50 _ 0 员工住址
AddedDate 添加日期 smalldatetime 4 GetDate() 0 记录添加日期
AddedUserID 添加人 int 4 1 0 记录哪个用户添加的
UpdatedDate 最后修改日期 smalldatetime 4 GetDate() 0 记录最后修改日期
UpdatedUserID 最后修改人 int 4 1 0 记录哪个用户最后修改的

 

      “Person_User_Info”,人员的登陆信息,比如登陆账号,密码等。
      这里有一个麻烦的地方,如果限定一个人只能有一个账号的话,那么就容易多了,我可以用“PersonID”作为“Person_User_Info”的主键,这样关联起来就很方便了。但是有的时候用户会提出来,一个人要用两个账号,这样我就必须给“Person_User_Info”设置一个自己的主键(“UserID”)了。你可能会说这也没有什么呀,但是对于我来说,这就不能做到和人员相关的表都使用“PersonID”关联了,这个就很郁闷了。

      具体字段如下:

字段名 中文名  字段类型 字段大小  默认值 是否为空  说明
UserID 登陆账号 int 4 1 0 主键
PersonID 人员ID int 4 1 0 外键
UserCode 登陆账号 nvarchar 50 _ 0 登陆账号
UserPassword 登陆密码 nvarchar 50 _ 0 MD5加密
DepartmentIDs 相关的部门 nvarchar 50 _ 0 可以查看哪些部门的相关信息
登陆次数 登陆次数 int 4 1 0 登陆的次数
登陆IP 登陆IP varchar 16 _ 0 登录时客户端的IP
登陆时间 登陆时间 datetime 8 GetDate() 0 最后一次的登录时间
最后访问时间 最后访问时间 datetime 8 GetDate() 0 用于在线统计

 

 

 

      “Person_Employ_Company”,人员的公司方面的信息,比如员工编号,入职时间等。如果一个人只能在一个部门的话,那么可以把部门ID放在这个表里面,如果一个人可以在多个部门的话,那么关联就要另外设置一个表了。我采用了后者。这个表和权限没有什么关系,我就不贴字段了。

      我们还可以根据客户的情况添加不同的表来记录客户的信息,当然对于权限来说,只有“Person_Info”和“Person_User_Info”是必须的,其他的都是可选的。

      提取出来“Person_Info”的目的就是为了能够“扩展”,如果我们给企业做项目,那么就需要加上一些保险信息,调岗记录,等等的相关的表,而给学校做项目的话,那就是另外一些列的表了。就是说我们不管做什么样的项目,“Person_Info”和“Person_User_Info”可以保持不变,这样就稳定了。

 

ps:看了大家的评论,我也是越想越多,越想越复杂,总是感觉这么做不对,那么做也欠缺一点,还是先不要想那么多,想把自己想好的写出来,然后在改进吧。

 

关于人员和组织机构的关系,我在下一章介绍组织机构的时候在一起说。

如果您想看数据库说明文档(人员、角色、组织机构、项目描述、还有上一篇里的图)的话,可以到这里下载:http://www.cnblogs.com/jyk/archive/2009/06/06/1497616.html

 

时间: 2024-07-31 06:37:17

【自然框架】之通用权限(二):人员表组的相关文章

【自然框架】通用权限的视频演示(一):添加角色,权限到功能节点和按钮

      写了几个关于权限的东东,好像大家都不大理解,也不太清楚我的权限到底能做什么,所以想来想去还是弄点视频吧,就是屏幕录像,这样大家看起来就方便了吧.       为了大家便于观看视频,我先说一下视频的步骤.      1.添加角色,选择角色可以使用的功能节点和按钮.      2.选择用户,就是给角色里面添加用户.      3.用用户的账号登录,查看效果.      4.修改角色可以使用的按钮,查看效果.       这里举了一个很简单的例子--新闻维护,有两个角色,一个是"新闻维护&

【自然框架】 权限 的视频演示(二): 权限到字段、权限到记录

      继续.这里演示权限到字段和权限到记录.            权限到字段有两种安全级别,      1.低安全级别.有些项目不需要做到控制每一个字段是否显示,那么就可以采用这种级别.低安全级别就是:如果一个节点里面没有设置可以访问哪些字段,那么就默认为不需要做到控制字段的程度,就是说节点里的字段都是可以访问的.这么做是为了操作方便.       2.高安全级别.有些项目要求非常严格,要严格控制每一个字段是否可以访问,那么就可以采用这种安全级别.高安全级别:如果一个节点里面没有设置可以

【自然框架 免费视频】资源角色的思路介绍(整理了一下以前帖子的目录,请刷新)

  请大家不要忘记点推荐!   源码下载: 自然框架的源代码.Demo.数据库.配置信息管理程序下载 这里介绍一下资源权限的思路,我们来设计一个场景,这个场景大家比较常见的,也是我遇到过的.我们来通过这个简单的实例,来看看资源权限可以如何实现. 资源权限,就是同样的一个表,一些人可以看到一部分信息,另一些人可以看到另一部分信息,还有些人可以看到全部信息,还有--.总之就是根据员工的权力,进行适当的筛选.可以看到一部分,或者可以看到全部.一级可以做什么样的操作(增删改查,导出等).   这里先只介

【自然框架】之通用权限:用PowerDesigner重新设计了一下数据库,有ER图和表关系图

      好像以前做的那个数据库设计大家都没太看懂,究其原因似乎大家都比较习惯使用PowerDesinger来设计.而我用Excel画出来的图大家看着特别别扭,而且还没有总体的图,也没有ER图,所以大家也就没有心情看了吧.呵呵.      PowerDesinger学习了一下,感谢Hayden Han 写的<PowerDesigner使用教程 -- 概念数据模型 >,通过这个文章学会了如何使用PowerDesinger来画ER图,这回画出来的应该是ER图了吧,呵呵.除了ER图,还有表关联图,

【自然框架】之通用权限(三):组织结构表组

        继续,这是第三章了.拖得有点长,但是我也是一边写,一边在想办法,想怎么做才能让资源权限也能通用起来.看大家的回复也给了我一些提示,我也在修改我的方案.原来打算用来解决一个人虽然在业务一部,但是却可以看业务一部.业务二部的客户信息的情况,但是仔细想了一下,这么做也不行.不过还好,我又找到了另一个方法来解决,而且可以让资源权限更加通用.不过这个详细的方法要放在下一章的角色表组里面来说明了.(这是写这篇之前的想法,写完之后想法又变了.)    通用权限想要写的文章目录:(这是第三章)

【自然框架】之通用权限(八):权限到字段(列表、表单、查询)

   通用权限想要写的文章目录:(这是第八章)   1. 简介.数据库的总体结构2. 介绍人员表组3. 介绍组织结构表组4. 介绍角色表组5. 介绍"项目自我描述表组"6. 权限到节点7. 权限到按钮8. 权限到列表(表单.查询)9. 权限的验证10. 资源方面的权限11. 角色管理的程序(给客户用的)12. 权限下放13. 个性化设置 A. [自然框架]之通用权限(外传):杂谈     列表 myGrid 先说一下myGrid,我会根据Manage_FunListCol表和Manag

【自然框架】之通用权限(五):项目描述表组

        继续,这是第五章了.我发现了,写文章比写程序还要有难度.   通用权限想要写的文章目录:(这是第五章)    1. 简介.数据库的总体结构2. 介绍人员表组3. 介绍组织结构表组4. 介绍角色表组5. 介绍"项目自我描述表组"6. 权限到节点7. 权限到按钮8. 权限到列表(表单.查询)9. 权限的验证10. 资源方面的权限11. 角色管理的程序(给客户用的)12. 权限下放13. 个性化设置 A. [自然框架]之通用权限(外传):杂谈         项目描述表组  

【自然框架】之通用权限(四):角色表组

        继续,这是第四章了.这里涉及到了资源方面的,不过有点绕,所以这里先介绍一下表结构,在后面的章节里面,再举例子详细介绍. 通用权限想要写的文章目录:(这是第四章)   1. 简介.数据库的总体结构2. 介绍人员表组3. 介绍组织结构表组4. 介绍角色表组5. 介绍"项目自我描述表组"6. 权限到节点7. 权限到按钮8. 权限到列表(表单.查询)9. 权限的验证10. 资源方面的权限11. 角色管理的程序(给客户用的)12. 权限下放13. 个性化设置 A.. [自然框架]

【自然框架】之通用权限(一):简介、数据结构

        这次要写一整套的权限方面的文章了,无论我的想法好与不好,先写出来请大家来评判.这个系列我要详细的说明我的权限的思路.想法.实现方式.代码和Demo.可能有人会说,通用是达不到的,最多只能无限接近.恩,对于我来说,能够无限接近就可以了,当然我知道如果要达到这个目标并不是一件容易的事情,有难度才有挑战,才有意思.所以我会在权限方面不断的努力,不断的无限接近通用.也请大家多多帮忙,毕竟一个人的力量是有限的.              通用权限想要写的文章目录:(这是第一章)   1.