之前若干篇,已经详细讲解了EasyUI的使用,同时也讲了一个非常简单的数据库ORM框架-Panda ORM的使用。现在所有的障碍都扫清了哈,可以具体的来实现银行业绩统计系统了。本篇主要讲解表结构的设计,在讲解表结构设计的同时功能基本上也就说明白了。
先看整体结构图,大体分为四部分:人员和机构;角色和菜单;岗位与统计元素;业绩统计;
一,人员和机构
主要涉及两张表,人员表user,机构表department。需要注意以下几点:
1,user表中的user_role指向role角色表的role_id,user_job指向job岗位表的job_id,user_department指向department机构表的department_id,分别表示人员的角色、人员的岗位、人员所属机构。
2,department表中的department_up表示上级机构,指向本表的department_id,注意如果是最低级的机构,则其department_up为自身(我的上级就是我自己,我就是大BOSS)。
3,department_mode取值有3种:0不统计 1指定统计人统计 2部门人员单独录入
,0表示该部门不用统计业绩(非营销部门),1指定统计人统计 表示由department_statistician指向的user用户统计(由程序逻辑控制该人只能是本部门人员),2表示部门内部个人统计个人的(当然如果部门某人job对应的统计元素为空,就不用统计了哈)。
二,角色和菜单
涉及三张表,role角色表,menu菜单表,role_menu是角色菜单对应表,这三张表用于实现基于角色的权限管理,逻辑比较简单不再详述。
三,岗位与统计元素
涉及三张表,job是岗位表,element是统计元素表(注意unit表示单位,比如"元","万元",“张”,“份”等),job_element表示岗位需要统计的元素有哪些。岗位与统计元素是多对多的关系。
四,业绩统计
statistic统计表是核心,statistic_date表日期,statistic_input_user表示录入人员,statistic_user表示业绩所属人员,statistic_job表示业绩所属人员当时的岗位,statistic_element表示当时的统计元素,statistic_num表示业绩数量(单位*数量表示总量),statistic_remark表示备注信息。
因为statistic统计表这样的设计,需要注意几点:
1,user是不能硬删除的,可以加个状态标记表示人员退休或者离职,否则硬删除了statistic_input_user和statistic_user就找不到对应人了。
2,statistic_job的存在,就让job不能硬删除,最好也别修改job_name,比如不能将柜员改为行长,如果真的发生了一个柜员变为行长,应该做的操作是将user对应的job改为行长对应的job_id。
3,同理statistic_element也不能被删除、被修改,可以新增指标。statistic表记录的是业绩录入时的状态。
4,remark备注栏,可以由业绩录入人员补充一些信息,比如信息错误求修改,比如录入时间晚信息不全说明原因等等。
万事具备,前端EasyUI,后端Servlet,数据库那边还有Panda ORM,本次开发旅程必定轻松愉快——那是不可能的,还有很多问题等待去解决。
热门评论
user表 主键: user_id varchar(20), 应该是mySQL 吧 ? 这varchar类型的主键 能自增长吗?