首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该为每个路由创建新架构模型文件还是使用已经创建的架构?

我应该为每个路由创建新架构模型文件还是使用已经创建的架构?
EN

Stack Overflow用户
提问于 2018-09-03 19:40:24
回答 1查看 130关注 0票数 0

假设我有一个用户模式,它有大约30个字段,还有其他3个模式。

UserSchema.js

代码语言:javascript
复制
user_schema = new Schema({
    user_id: { type: String},
    .........//30 properties
});
ctrs_schema = new Schema({
    .........10 properties
});
ids_schema = new Schema({
    .........5 properties
});
comments_schema = new Schema({
    .........10 properties
});

现在,我正在编写一条将改变用户性别的路由,为了做到这一点,我可以使用UserSchema.js,但这将将所有模式加载到我的路由中,而如果我创建了一个只有一个带有两个字段的模式的新文件,那么所有模式都不会加载到该路由的内存中。

UserGenderSchema.js

代码语言:javascript
复制
gender_schema = new Schema({
    user_id: { type: String},
    gender: { type: String}
});

我知道这两种方法各有优缺点。

Pros -

如果要对任何字段进行更改,我只能在单个文件中进行编辑。

Cons -

所有模式都在加载所有不必要的路由。记忆浪费。

线程上的这两种方式之间是否会有更少的内存使用呢?

谁能告诉我哪种架构会更好,或者你在你的项目中正在实现什么?为什么?

谢谢

EN

回答 1

Stack Overflow用户

发布于 2018-09-04 05:08:44

最好是将与用户相关的字段保留在一个模式中,因为mongo是因为它的非关系结构而存在的,并且它通过保持关系结构而获得了性能,所以如果您为每个字段创建一个模式,然后在每个字段中创建一个引用来指出与其相关的用户,您就会使用mongo来构建一个严重的关系结构,而mongo并不像在这种情况下那样好,因此,如果以后在应用程序中,您希望以某种方式显示用户的所有信息,或者尝试更新多个用户字段,或者尝试在某个路由或其他位置显示更多的用户信息,则最终会出现一些严重的性能问题。总之,加载所有模式以只触及一个字段的成本并不像分解数据结构的成本那样大。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52155447

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档