如何在帆中构建数据库模型以实现多对多关联

时间:2015-08-22 20:11:18

标签: javascript mongodb sails.js database-schema waterline

我正在创建一个由团队和用户组成的Web应用程序。用户可以属于多个团队,团队由许多用户组成。为了在后端实现这一点,我已经按照this one之类的Waterline指南来创建关联表,并为用户和团队创建了水线模型。完成此操作后,我仍然不确定我的api是如何返回的,例如,属于某个团队的用户列表。 我不确定这里的最佳做法是什么。我应该在团队模型中创建一个只存储团队用户名称的数组,并在需要时返回该数组吗?或者是否有一种有效的方法来查询关联表以获取特定团队的用户列表? 任何帮助将不胜感激!

2 个答案:

答案 0 :(得分:2)

blueprints用于您的API,您将自动检索该团队的用户。

如果要使用自定义控制器,可以使用populate()获得相同的结果。

mainMenuViewController

答案 1 :(得分:1)

我的建议是重新考虑你的业务逻辑,如果你使用像mongo这样的数据库计划像对象一样的模型,你猜你的主要项目就像用户一样:



var UserModel = {
  name: String,
  age: Number,
  teams:[
    {
      name: String,
      memberSince: Date
    },
    {
      name: String,
      memberSince: Date
    }
  ]
};




然后检索查询看起来像某个团队的用户列表

var memberList = UserModel.find({teams.name:<your team>});

不要使用任何id来绑定集合,只需使用数组在用户集合中使用它们。

相关问题