gpt4 book ai didi

javascript - Sequelize如何使用关联表?

转载 作者:行者123 更新时间:2023-12-01 03:39:36 26 4
gpt4 key购买 nike

我在使用 Sequelize 时遇到问题,因为我不知道如何解决该问题。

我有 3 个表:A(游戏)、B(平台)和 AB(游戏平台)。A 可以有 1 到多个 B,B 可以有 0 到多个 A。为此,我制作了一个关联表:AB。

在 Sequelize 中,我创建了 A、B、AB 模型,然后我做了:

db.Game.belongsToMany(db.Platform, {as: 'Game', through: 'GamePlatformsJoin', foreignKey: 'game_platforms_fk_game'});
db.Platform.belongsToMany(db.Game, {as: 'Platform', through: 'GamePlatformsJoin', foreignKey: 'game_platforms_fk_platform'});

现在事情将是这样的:在我的网站上将创建平台,然后创建游戏。创建游戏时,用户需要定义与其关联的平台。但是我如何告诉 Sequelize 我想要在关联表中添加一个新条目?我可以像添加任何其他表一样添加它,但是有更简单的方法吗?

最佳答案

我的问题的解决方案位于关联对象下的文档] 1 (我一定是跳过了)。

这说明,如果 belingsToMany 配置正确,将动态创建多个方法来管理关联(getX、addX、getXs、addXs...)。

我的第二个问题是我在belongsToMany中给出的别名,因为我不知道它采用了模型的名称,所以我自己设置了一个名称并交换了它们。

现在我删除了别名,它工作正常。

db.Game.belongsToMany(db.Platform, {through: db.GamePlatforms, foreignKey: 'game_platforms_fk_game'});
db.Platform.belongsToMany(db.Game, {through: db.GamePlatforms, foreignKey: 'game_platforms_fk_platform'});

这是我用来测试“添加关联”的代码。

Game.find({where: {game_short: 'SFV'}})
.then(function(game) {
Platform.find({where: {platform_short: 'PC'}})
.then(plat => game.addPlatform(plat));
})
.catch(err => console.log('Error asso game and platform', err));

关于javascript - Sequelize如何使用关联表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43997395/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com