3. *细粒度权限控制
主菜单,左侧菜单,按钮,URL,方法,业界都称为粗粒度的权限控制。日常的小系统,基于用户,角色,权限架构足够用。
在实际大型项目中,光有上面的用户角色,URL这样的控制粒度不够细致,还有数据访问权限。
1) 对数据的访问列是可以自己定制的。
例如:访问一个人员工资信息表,这个表中含有人员的工资。 2) 对数据的访问行可以受权限控制。
例如:工资表中有销售部人员的工资信息,还有船运部人员的工资信息。当销售部领导登录时,他只能看到销售人员的工资信息,他不能看到船运部人员的工资信息。 3) 直接浏览数据库表,工资列不能直接看到其值。对这个数据库列进行加密。
上面统称为数据访问权限,这个权限加上角色用户这样这个系统才比较安全。也称为细粒度的权限控制。
a) 列访问控制:
单独建立表,权限分配某个角色能访问哪些列;
b) 行访问控制:
1) 只能看自己创建的记录,不能看到别人创建的记录
Where create_by = 当前登陆人ID
2) 部门领导看到,他能看到本部门人员创建的记录,不能看到其他部门人员创建的记录
Where create_dept = 当前登陆人部门ID and user_level <4 3) 跨部门访问权限,分管领导跨部门,跨人员
再加一个配置表,分管领导可以管理的人和部门;
9
? 第七天异构数据库支持+出口报运核心业务
1. 核心业务:货运管理第二个流程,出口报运 a) 定义:
做国际物流,货物要运往国外之前,向海关申报。向海关申报符合国家标准的货物,和货物的体积和重量信息。除了在合同中货物的基本信息外,在报运时新增7个字段,长,宽,高,毛重,净重,出口单价,含税。
分次报运
一个可以可以分多次来报运,体现在运输的货物数上。
10
例如:10000货物,第一次报运运输6000,第二次报运运输4000. 可以多次报运,这种情况很少。日常大多是一次报运。
b) 分析设计
一个出口报运单来自多个购销合同(一对多);给货物信息新增的7个字段的内容。 创建一个出口报运单表
c) 冗余设计
将货物信息冗余到报运单下的货物信息中。一个实现读取数据快速,减小业务的复杂度,业务逻辑简单。
d) 打断设计实现跳跃查询
避免关联层级过多,数据量大了后,访问奇慢。打断设计。(表设计不成为文规定,表之间的关联关系不超过4层)在设计时使用一个虚线箭头来表示表之间是存在关联关系,在设计时,不是往常的外键关系。利用一个字段来存储主表和子表之间的关系。X,Y
Where contract_id in (‘x’,’y’)。经过打断设计,表之间的关系不存在,跳跃查询。无需查询合同表,直接查询合同下的货物表。(新增)
经过上面的设计,后续业务变的更加简单。
11
报运单EXPORT_IDvarchar(40)
报运商品明细EXPORT_PRODUCT_IDvarchar(40)
领用周期不同 班组1 班组2 鞋 10 20 帽子 10 20 手套 毛巾 军大衣 5 3 洗衣粉 饭盒 … 12

