匹配 Node.js 服务器和 MySQL 数据库之间的权限 ID

Matching permission ids between Node.js server and MySQL database

提问人:Celeste Soueid 提问时间:11/16/2023 更新时间:11/16/2023 访问量:19

问:

我有一个结构如下的数据库(我没有设置结构,这只是我想出的。 它也不包括所有列):

桌子
permission_project (编号、名称)
用户 (同上)
项目 (同上)
project_user_permission (project_id、permission_id、user_id)

(带有前缀的 ID 列是 FK) 在我的应用程序代码中,我将希望引用权限值来授权用户/API 操作,因此我希望确保 JS 值与数据库值同步。但是,我不确定最好的方法。

我提出了三种可能的解决方案(对它们有不同的感受):

  1. 在应用程序代码中定义并填充权限表,确保应用程序的值具有权威性(我不知道这是否可行。还担心我可能会使数据无效和混淆权限)。
  2. 用权限表的内容填充一个 JS 对象,并在查询权限时引用这个对象(如果数据库内容发生变化,我不喜欢这需要更新应用程序中所有使用的权限名称)
  3. 将数据库权限名称映射到应用程序权限名称,然后使用应用程序权限名称填充 JS 对象。这至少将解决方案 2 的维护范围缩小到一个点,但我并没有因为必须在两个不同的位置更改权限名称而感到高兴。

这些解决方案是否实用?有没有我不知道的更好的解决方案? 如前所述,我没有嫁给这个结构。如果可以改进,我很乐意修改数据库。

javascript sql mysql 数据库 mariadb

评论


答: 暂无答案