CRM后期需求修改时,程序设计思维上的亮点:
1.实现录音权限分配功能
A.早期需求:角色都可以听录音。
处理方式:界面不加限制。
B.中期需求:仅超级管理员可以听录音。
处理方式:对非超级管理员的角色在界面上加限制。
C.后期需求:超级管理员可以分配听录音的权限给指定的人员,且分配之后72小时有效,过期失效。
个人计划处理方式:新建听录音的权限表(某人,开始时间,结束时间);新建一套增删改的界面;
同事计划处理方式:直接在人员表中冗余一个voice_endtime表示听录音的截止时间,在界面上判断:为空或者在当前时间之前都表示“未授权”。
亮点总结:思维跳跃,这样处理简化了很多事情:不必新建表,不需要添加一套增删改的界面,java文件不需要修改(不需要另外去查询权限相关的数据,因为本条数据已经包含了权限标识)减少了此功能的维护成本,简化了对功能的理解。新增一个字段就完成了一个功能,这种高效的方式给我很大意外。
2.审核功能的设计原理(更名审核、延期审核)
个人计划处理方式:新建审核表(申请类型,原值,更改后的值...),新建一套对应的增删改的界面,同时对不同的申请做通过或拒绝才操作时,续作逻辑处理;
同事计划处理方式:
在人员表中冗余name_temp字段,存更改后的值,当name和name_temp的内容不一致时,可以筛选出此条数据进行操作,如果点击‘通过’,则将name_temp的值赋给name,‘拒绝’,则将name的值覆盖到name_temp。
在客户表中冗余sign_time_temp字段,原理如上。
亮点总结:避免了引入更多的逻辑,使得代码更精简。也是一个字段支撑一个功能的巧妙的设计!