我很难理解如何在objections.js中建立多到多的关系。
基本上,我有一个用户应用程序,游戏和UsersScore表。一个帐户可以在游戏中得分。
桌子是这样的:
用户表
对策表
UsersScore表
我如何建立这种关系?
我想向登录用户显示所有游戏的列表,如果他在游戏中有得分,那么他的得分。
谢谢!!
发布于 2020-10-05 19:36:35
这与联接表附加属性在反对文档中概述的要求本质上是相同的。您可以对此进行调整以创建users、games和users_games表。那么您的User模型可能如下所示:
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列。然后我想你会得到一张游戏列表,上面写着:
const user = await User.query().findOne({ username: 'wombatsarefluffy' });
const games = await user.$relatedQuery('games');有关如何构造迁移的示例,请参阅文档页。
https://stackoverflow.com/questions/64190148
复制相似问题