首页 > 解决方案 > 您可以在一个步骤中使用在另一个表(记录)中找到的数据在 sequelize 中创建新记录吗?

问题描述

我有 2 张桌子;一个包含赛车手的信息(基本上是用户,但它是用于赛车游戏),另一个存储有关比赛的详细结果。

赛车手(除其他外)有一个 characterId、vehicleId、teamId 和他们的主键 ID。

比赛结束后,会生成 RacerResult 记录并填充上面的 4 个字段,以及其他信息:即,它参加了哪场比赛,你获得了什么位置?

例如:当比赛 1 以 4 名玩家结束时,会创建 4 个新的 RacerResult,它们都具有相同的 raceId,但其余的取决于赛车手(赛车手 1 可能在团队 2 中使用了角色 3,等等)。

关联定义为:RacerResult.belongsTo(Racer) 和 Racer.hasMany(RacerResult)。

我想知道:有没有办法在 RacerResult.create 方法中获取 characterId、vehicleId 和 teamId 给定的racerId(使用 include 或 findOne: { where: ... } ?

还是我必须做类似的事情:

racerinfo = Racer.findByPK(id, {attributes: ... })
RacerResult.create(
  characterId = racerinfo.characterId,
  ...
)

标签: postgresqlsequelize.js

解决方案


推荐阅读