express.js中具有权限的体系结构问题

express.js中具有权限的体系结构问题,express,architecture,permissions,authorization,relationship,Express,Architecture,Permissions,Authorization,Relationship,我正在Express.js上构建一些应用程序,遇到了权限方面的架构问题 示例资源: 组织,用户,单位,资源 每个用户可以属于多个组织,每个组织可以有多个单元,每个单元可以有多个资源 假设每个用户都可以添加任意数量的单元和资源。问题来了,因为应用程序必须检查正在添加的资源是否实际添加到了单元,该单元属于组织,该组织拥有执行此查询的用户 该结构是示例性的,在实际应用中,它将更加复杂,因此“向上移动到阶梯”这样的方法可能是不够的 你们中有谁知道如何以最有效的方式解决这个问题吗?这些关系需要建立在数据库

我正在Express.js上构建一些应用程序,遇到了权限方面的架构问题

示例资源:
组织
用户
单位
资源

每个
用户
可以属于多个
组织
,每个
组织
可以有多个
单元
,每个
单元
可以有多个
资源

假设每个
用户
都可以添加任意数量的
单元
资源
。问题来了,因为应用程序必须检查正在添加的
资源是否实际添加到了
单元
,该单元属于
组织
,该组织拥有执行此查询的
用户

该结构是示例性的,在实际应用中,它将更加复杂,因此“向上移动到阶梯”这样的方法可能是不够的


你们中有谁知道如何以最有效的方式解决这个问题吗?

这些关系需要建立在数据库中,我觉得你们需要像mysql这样的关系数据库()

下面是创建第一个表结构的示例代码,如果您还需要用户与单元或资源之间的链接,则可能需要说明:

CREATE TABLE Users (
    userid SERIAL PRIMARY KEY, 
    username VARCHAR(100) UNIQUE KEY,
    email VARCHAR(256), 
    password VARCHAR(256),
    created_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    updated_on TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP
    );

CREATE TABLE Organisation (
    orgid SERIAL PRIMARY KEY,
    organisation VARCHAR(140) UNIQUE KEY
    );
CREATE TABLE User2Organisation (
    userid BIGINT UNSIGNED NOT NULL,
    orgid BIGINT UNSIGNED NOT NULL,
    FOREIGN KEY (userid) REFERENCES Users(userid),
    FOREIGN KEY (orgid) REFERENCES Organisation(orgid),
    PRIMARY KEY (userid,orgid)
    );
CREATE TABLE Units (
    unitid SERIAL PRIMARY KEY,
    unit VARCHAR(140) UNIQUE KEY,
    orgid BIGINT UNSIGNED NOT NULL,
    FOREIGN KEY (orgid) REFERENCES Organisation(orgid)
    );
CREATE TABLE Resources (
    resourceid SERIAL PRIMARY KEY,
    resource VARCHAR(140) UNIQUE KEY,
    unitid BIGINT UNSIGNED NOT NULL,
    FOREIGN KEY (unitit) REFERENCES Units(unitid)
    );

这只是数据库设计的一个起点。此外,视图可能有助于检查用户是否具有对其的正确访问权限。

您的意思是如何授权执行这些操作的api端点?