组织图表表示在一个表
-
18-09-2019 - |
题
我有一个接入的应用程序,在其中我有一个员工的表格。员工的一部分,几个不同层次的组织。该orgranization有1个通用汽车、5部门负责人,并在每个部门的头几个主管,并在这些主管的工人。
根据职位的雇员,他们只会有记录的访问的那些在他们之下。
我想代表本组织在表与某种形式的等级系统。问题是我看到的是,有许多人在同一水平(例如监管),但他们不该有访问记录的一名主管在另一个部门。我应该怎么处理这个问题?
解决方案
一个常见的方式保持这种分层数据库中的数据仅使用一个单一的表格,用领域这样的事情:
- userId(主键)
- 用户名
- supervisorId(自引用"外交钥匙",指的是另一个userId在此同样表)
- positionCode(可能是简单的像1=富理,2=监督;或者一个外国的关键指向另一个表中的位置和诸)
- ...其他什么你需要的商店,为每个员工...
那么你的应用程序使用SQL查询图出权限。图出的雇员,监'X'(其userId是'3',例如)是允许的,看看你查询所有雇员在supervisorId=3.
如果你想高了老板可以看到每个人都下,最简单的方法就是做递归搜索。I.e。查询每一个人,报告的这个大老板,并为他们每个人的查询人报告他们,所有的方式下来的树。
这是否有意义吗?你让的数据库做的工作的排序通过的所有用户使用,因为计算机正好在那样的事情。
我把positionCode在本例情况下,你想某人有不同的权限...例如,可能有一个代码'99'人力资源员工有权看到所列的所有雇员。
也许我会让另一些人试图以更好的解释...
- 这里的一篇文章,从Microsoft的访问食谱解释这些查询相当好。
- 这里是一个有点矮矮胖胖的解释的相同。
- 这里是一个完全不同的方法("邻接表模型"),你可能找到有用的,和他的解释是漂亮的好。 他还指出一些困难有两种方法(当他谈论表的"规范化").
不隶属于 StackOverflow