首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在Meteor中创建多个用户合同

在Meteor中创建多个用户合同
EN

Stack Overflow用户
提问于 2015-06-29 19:39:40
回答 1查看 66关注 0票数 1

我想创建一个系统,其中可以创建属于不同用户的多个合同。

在Django、Ruby等中,我会创建一个带有字段user = models.ForeignKey(settings.AUTH_USER_MODEL)的模型Contract,但我不知道如何在Meteor中做到这一点。

创建一个模式是否更好?

代码语言:javascript
复制
Schema.User = new SimpleSchema({
  contracts: {
    type: [Object],
  },
  "contracts.$.start_date": {
    type: Date,
  },
  "contracts.$.end_date": {
    type: Date,
  },
  "contracts.$.salary": {
    type: Number,
  }
});

或者类似的东西?然后使用meteor-autoform来创建这些?在Meteor中使对象成为关系型似乎非常困难。

EN

回答 1

Stack Overflow用户

发布于 2015-06-29 19:58:59

MongoDB不是关系数据库,因此您需要自己手动处理关系(使用多个查询)。传统上,Mongo文档会尽可能使用嵌入,并在必要时使用单独的集合。有关更多信息,请参阅此处:

MongoDB relationships: embed or reference?

然而,Meteor在工作中抛出了一个扳手,因为发布模型只能发布顶级文档,并且在编写模板等时几乎不支持文档层次结构。

因此,Meteor下的常规方法是为每个集合创建表,并使用ID引用其他记录:

代码语言:javascript
复制
Schema.User = new SimpleSchema({
  contracts: {
    type: [String],
  },
  ...
});

Schema.Contract = new SimpleSchema({
  user: {
    type: String,
    index: true
  },
  ...
});

虽然这将导致您必须进行多个查询,但该结构将非常符合Meteor的设计理念。

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

https://stackoverflow.com/questions/31114743

复制
相关文章

相似问题

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