首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >带枢轴表的Objection.js实现

带枢轴表的Objection.js实现
EN

Stack Overflow用户
提问于 2020-10-04 00:25:08
回答 1查看 487关注 0票数 1

我很难理解如何在objections.js中建立多到多的关系。

基本上,我有一个用户应用程序,游戏和UsersScore表。一个帐户可以在游戏中得分。

桌子是这样的:

用户表

  • id
  • 用户名

对策表

  • id
  • 名字

UsersScore表

  • id
  • userId
  • gameId
  • 得分

我如何建立这种关系?

我想向登录用户显示所有游戏的列表,如果他在游戏中有得分,那么他的得分。

谢谢!!

EN

回答 1

Stack Overflow用户

发布于 2020-10-05 19:36:35

这与联接表附加属性在反对文档中概述的要求本质上是相同的。您可以对此进行调整以创建usersgamesusers_games表。那么您的User模型可能如下所示:

代码语言:javascript
复制
class User extends Model {
  static get relationMappings() {
    return {
      relation: Model.ManyToManyRelation,
      modelClass: Game,
      join: {
        from: 'users.id',
        through: {
          from: 'users_games.user_id',
          to: 'users_games.game_id',
          extra: ['score']
        },
        to: 'game.id'
      }
    };
  }
}

在这里您可以看到,我们向我们的score联接表中添加了一个额外的users_games列。然后我想你会得到一张游戏列表,上面写着:

代码语言:javascript
复制
const user = await User.query().findOne({ username: 'wombatsarefluffy' });
const games = await user.$relatedQuery('games');

有关如何构造迁移的示例,请参阅文档页。

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

https://stackoverflow.com/questions/64190148

复制
相关文章

相似问题

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