【发布时间】:2019-12-10 11:52:16
【问题描述】:
我正在创建一个 Web 应用程序,它允许管理员跟踪用户并修改他们的信息和访问权限。需要表示的关于用户的大部分信息都很简单(姓名、电子邮件、工作 ID 等),但我无法表示用户对我们系统中应用程序的访问权限。
有些应用程序是用户可以访问或不可以访问的。应用程序列表正在增长,因此我不想硬编码对应用程序“x”的访问,因为 xAccess 是一个布尔值。我目前有一个地图,其中字符串是应用程序的名称,布尔值是用户的访问权限。
我不知道如何在 MySQL 表中表示它。我应该如何存储这些数据?这是跟踪这些数据的最佳方式吗?我愿意接受任何想法。
我正在创建一个 Web 应用程序,并且我硬编码了一个带有数据的 typescript 类,这样我就可以在前端工作而不必担心保存数据。我目前有这个打字稿类:
export class UserModel {
userId: number;
windowsId: string;
fullName: string;
role: number;
roleName: string;
appAccess: Map<string, boolean>;
}
appAccess 是我目前尝试表示这些数据,但我不知道将它存储在 MySQL 表中的好方法。
【问题讨论】:
-
对于基于角色的权限来说,这似乎是一个很好的用例。在最基本的情况下,您将拥有具有角色的用户,并且这些角色将具有权限(例如,访问应用程序)。所以你会有一个用户表、角色表和一个权限表;然后是 user_role 表和 role_permission 表来维护这三个对象之间的映射。 Kind of like this answer outlines
标签: mysql angular typescript spring-boot