上一篇:
【自然框架】之通用权限(二):人员表组继续,这是第三章了。拖得有点长,但是我也是一边写,一边在想办法,想怎么做才能让资源权限也能通用起来。看大家的回复也给了我一些提示,我也在修改我的方案。原来打算用来解决一个人虽然在业务一部,但是却可以看业务一部、业务二部的客户信息的情况,但是仔细想了一下,这么做也不行。不过还好,我又找到了另一个方法来解决,而且可以让资源权限更加通用。不过这个详细的方法要放在下一章的角色表组里面来说明了。(这是写这篇之前的想法,写完之后想法又变了。)
组织机构表组
这个简单一些,目前只有两个表。
Dept_Department,这个是n级分类的设置,对以小公司来说,可以放业务部、客户服等部门;对于集团来说可以先放分公司(比如子公司1、子公司2),然后再在下一级里面放业务部、客户服等。而对于更大的集团的话,可以先放置“西北区”、“华北区”、“华东区”这样的大区,然后再在下一级放分公司,再在下下一级放业务部、客户服。就是说一个公司不管如何去划分“部门”,总之都往这个表里面放。
| 字段名 | 中文名 | 字段类型 | 字段大小 | 默认值 | 是否为空 | 说明 |
| DepartmentID | 组织机构 | int | 4 | 1 | 0 | 主键 |
| 机构名称 | 机构名称 | nvarchar | 50 | _ | 0 | 可以是部门,也可以是分公司、地区 |
| 机构简称 | 机构简称 | nvarchar | 50 | _ | 0 | 机构简称 |
| 结构描述 | 结构描述 | nvarchar | 50 | _ | 0 | 结构描述 |
| 机构类型 | 机构类型 | nvarchar | 50 | _ | 0 | 机构类型 |
| 办公室电话 | 办公室电话 | nvarchar | 50 | _ | 0 | 办公室电话 |
| 传真 | 传真 | nvarchar | 50 | _ | 0 | 传真 |
| 邮编 | 邮编 | varchar | 6 | _ | 0 | 邮编 |
| 地址 | 地址 | nvarchar | 50 | _ | 0 | 地址 |
| 备注 | 备注 | nvarchar | 50 | _ | 0 | 备注 |
| 子机构数量 | 子机构数量 | int | 4 | 0 | 0 | 不包括子子机构 |
| 本机构员工数 | 本机构员工数 | int | 4 | 0 | 0 | 本机构(不包括子机构)的员工数 |
| 本机构全部员工数 | 本机构全部员工数 | int | 4 | 0 | 0 | 本机构和子机、子子机构的员工数量 |
| ParentID | 父节点ID | int | 4 | 1 | 0 | 父节点ID |
| ParentIDPath | 父节点ID的路径 | nvarchar | 30 | 0, | 0 | 父节点ID的路径 |
| DeptLevel | 机构层数 | int | 4 | 1 | 0 | 第几级的机构 |
| Sort | 序号 | int | 4 | 1 | 0 | 总排序 |
Dept_Department_Person,表示一个机构里面有哪些人员,机构和人员是多对多的关系。
| 字段名 | 中文名 | 字段类型 | 字段大小 | 默认值 | 是否为空 | 说明 |
| DeptPersonID | 序号 | int | 4 | 1 | 0 | 主键 |
| DepartmentID | 组织机构 | int | 4 | 1 | 0 | 外键 |
| PersonID | 人员ID | int | 4 | 1 | 0 | 外键 |
附件:
2009-06-09_224340.gif 附件:
2009-06-09_224403.gif 问:为什么要在权限里面加上组织机构?他和权限有什么关系呢?
答:准确的说,组织机构和操作权限基本上没有什么关系,但是却和资源权限有很大的关系。
我想用我以前做过的一个CMS项目来说明,我先简要介绍一下客户的情况。出于商业秘密原因,我说的会比较“模糊”,但是并不会影响说明组织机构和资源权限的关系。