希望这些建议,能推动管理软件开发的规范化进程 (数据按权限过滤)-阿里云开发者社区

开发者社区> 技术小阿哥> 正文

希望这些建议,能推动管理软件开发的规范化进程 (数据按权限过滤)

简介:
+关注继续查看
希望大家建立表格时,都按以下建议做一个参考。
  1. CompanyID nvarchar 40 这个数据是哪个公司的
  2. [可省略]CompanyFullName nvarchar 40 公司的名称
  3. DepartmentID nvarchar 40 这个数据是哪个部门的
  4. [可省略]DepartmentFullName nvarchar 40 这个部门的名称
  5. StaffID nvarchar 40 这个数据是哪个员工的姓名 
  6. [可省略]StaffFullName nvarchar 40 这个员工的姓名
当然以上表格的设计,主导思想。
1. 普通员工只能看自己的数据,不能看别人的数据,更不能修改别人数据了,
这时候,数据可以按 StaffID 进行过滤就可以了。
2. 部门主管可以看自己部门的数据,那可以用 DepaertmentID 进行过滤。
3. 公司的经理层,可以看自己公司的数据,那可以用 CompanyID 进行过滤。
以上当然是最简单的几个几个场景,还需要更复杂的情况,
例如 A只可以看 B、 C的数据,那就用 StaffID IN ('A', 'B') 类似来解决问题。
 
StaffID, 与 UserID 的区别,Staff 表示是这个公司的正式员工。
UserID  表示这个系统的用户,可能不是这个公司的职工,也可能是客户。

有些软件设计人员,设计程序时,想得有些不稳妥,例如,你会说CompanyIDDepartmentID 都可以通过
StaffID 可以计算得出,当然那些FullName那些,也都可以通过以上的计算,能获得出数据,按这个思路来考虑
问题,的确数据有很多冗余了。

我们猜想一下,我以前在宁波东蓝科技工作,犹豫家里的原因,我工作1年多后,调动到杭州分公司工作了,我的
个人ID在同一个集团公司里,是没有变化的,但是我的公司已经变了,部门也变了,以前的数据是属于宁波公司,
而不是属于杭州公司的,而且人员的调动,公司之间的调动,部门之间的调动,甚至借用人员都是很普遍存在的问题。

还有,一个业务表里的数据很多,那要跟其他表进行关联才能获得其他数据,这时候,写SQL语句很烦恼,而且有时候
部门的名字,单位的名字也可能会有变化,以前的数据就是那个部门的叫那个名字时的数据,所以还是保留起来,也可以
写sql模糊查询等很方便,还有我们打个比方,我们整个集团的数据都存储在宁波,例如有统一的数据中心,在保管着
我们整个集团的组织架构、职员信息、权限分配、工作流程配置等,我们本地的业务数据库里是没有 部门、人员表的。
那这样的情况下,应该保存当时的部门职员的名字,还是比较合适的。 
将权限管理、工作流管理做到我能力的极致,一个人只能做好那么很少的几件事情。




本文转自 jirigala 51CTO博客,原文链接:http://blog.51cto.com/2347979/451734,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
有前途的人工智能大数据分析相关职业:Python数据科学入门之路
为什么学习Python数据科学? Python是数据科学职业所需的宝贵技能之一。Python是数据科学的首选编程语言。 2016年,它超越了R on Kaggle,这是数据科学竞赛的首选平台。 2017年,它在KDNuggets对数据科学家最常用工具的年度调查中取代了R. 2018年,66%的数据科学家报告每天使用Python,使其成为分析专业人士的头号工具。
4287 0
近10年数据智能团队建设,联想总结了由内而外的发展经验 | 专访联想集团副总裁田日辉
近10年数据智能团队建设,联想总结了由内而外的发展经验 | 专访联想集团副总裁田日辉
41 0
13694
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载