node.js - 序列化同一类的两个关系

标签 node.js sequelize.js

你好,我有一个关于 Sequelize 的问题

我有两个实体两个模型

用户
并匹配

一场比赛有两个用户

我怀疑我将如何建立这种关系

我要换两个user_id?

我的比赛基本上会有

比赛编号,球员编号一,球员编号二

我怀疑如何在 Sequelize 中对此进行关联或定义

最佳答案

您可以定义匹配如下。我假设你有 UserModel.id 作为 Seqeulize.INTEGER

const MatchModel = Sequelize.define("Match", {
    // ... Other column declaration

    // Two user column -- which are not linked yet.
    playerOneId: {
        type: Sequelize.INTEGER,
        allowNull: false
    },
    playerTwoId: {
        type: Sequelize.INTEGER,
        allowNull: false
    }
})

// Now time to link the UserModel
// I assume you have `UserModel` declared before doing this.
MatchModel.belongsTo(UserModel, {
    foreignKey: {
        name: "playerOneId"
    },
    as: "playerOne"
}

MatchModel.belongsTo(UserModel, {
    foreignKey: {
        name: "playerTwoId"
    },
    as: "playerTwo"
}

现在在查询 MatchModel 时执行以下操作
MatchModel.findOne({
    where: {
         // Your condition goes here
    },
    includes: [
        {
             model: UserModel,
             as: "playerOne"
        },
        {
             model: UserModel,
             as: "playerTwo"
        },
    ]
})

关于node.js - 序列化同一类的两个关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59121509/

相关文章:

javascript - Kik 卡 - 我可以导入/需要 Kik.js 文件吗?

javascript - 自动包含所需的 API 合约调用

sequelize.js - sequelize 使用 targetKey 定义与另一个模型的外键关联

node.js - 在不重置数据库的情况下在 sequelize 中添加列

typescript - "schemaName"。 "tableName"生成 "schemaName.tableName"- Sequelize - Postgres

mysql - 如何测量sequelize中的查询执行时间?

node.js - express-session:文档中未列出 NPM 依赖项?

javascript - webdriver.io - 单击存在许多元素的特定元素

javascript - Sequelize Date 返回错误的日期(减 1)

javascript - 主干、js 和 node.js 渲染和路由