面向文档的数据库 - 如何抽象关系

时间:2017-12-14 19:04:22

标签: nosql couchdb relation abstraction

我在后端使用CouchDB(类似于MongoDB)作为主数据库和NodeJS。

由于CouchDB是无模式的,我必须处理业务规则中实体之间的关系。目前我直接在控制器中管理这种关系 - 这是我如何实现这种关系的一个非常简单的例子:

async function createProject(user, project) {
    project.userId = user.id;
    let response = await projectsDB.save(project);
    return response;
}

是否存在管理此类关系的架构模式。我正在考虑直接在域实体或数据库模块中抽象关系层 - 控制器似乎不是我应该管理它的地方。

我可以通过在实体实例上管理这种关系来做到以下几点

async function createProject(user, project) {
    let project = new Project(project, user); // if no user provided --> throw
    let response = await projectDB.save(project);
    return response;
}

或者它可能在DB层中:

 async function createProject(user, project) {
        let projectDB = new DB(user); // if no user provided --> throw
        let response = await projectDB.save(project);
        return response;
    }

0 个答案:

没有答案