我有一个 Access 应用程序,其中有一个员工表。员工是组织中几个不同级别的一部分。组织有总经理1人,部门负责人5人,每个部门负责人下设监事若干名,监事下设职工。
根据员工的职位,他们只能访问其下属人员的记录。
我想用某种级别系统在表格中表示组织。我看到的问题是同一级别有很多人(例如主管),但他们不应该访问另一个部门主管的记录。我应该如何解决这个问题?
我有一个 Access 应用程序,其中有一个员工表。员工是组织中几个不同级别的一部分。组织有总经理1人,部门负责人5人,每个部门负责人下设监事若干名,监事下设职工。
根据员工的职位,他们只能访问其下属人员的记录。
我想用某种级别系统在表格中表示组织。我看到的问题是同一级别有很多人(例如主管),但他们不应该访问另一个部门主管的记录。我应该如何解决这个问题?
将这种分层数据保存在数据库中的一种常见方法仅使用一个表,其字段如下所示:
然后,您的应用程序使用 SQL 查询来确定权限。要找出主管“X”(例如,其 userId 为“3”)可以查看的员工,请查询所有 supervisorId=3 的员工。
如果你想让更高级别的老板能够看到他们下面的每个人,最简单的方法就是进行递归搜索。即查询向这个大老板报告的每个人,并为每个人查询谁向他们报告,一直到树下。
那有意义吗?您让数据库完成对所有用户进行排序的工作,因为计算机擅长这种事情。
如果您希望某些人具有不同的权限,我将 positionCode 放在此示例中...例如,您可能为有权查看所有员工列表的 HR 员工设置了代码“99”。
也许我会让其他人尝试更好地解释它......