首页 文章

在续集中关联参考表

提问于
浏览
0

我有几个表,我试图在Sequelize中关联 - 一个包含用户输入的消息的 jobaids_sections_messages 表,以及一个 jobaids_sections_messages_levels 表,它是消息表使用的静态引用 . 他们就是这样设置的

this.jobaidMessage = sequelize.define('jobaids_sections_messages', {
    message: Sequelize.STRING,
    attuid: Sequelize.STRING,
    level: Sequelize.INTEGER
}, {
    paranoid: true
});

this.jobaidMessageLevel = sequelize.define('jobaids_sections_messages_levels', {
    name: Sequelize.STRING
}, {
    timestamps: false
});

jobaids_sections_messages_levels 表的设置如下:

| id  |   name   |
| --- | -------- |
| 1   | Critical |
| 2   | Major    |
| 3   | Warning  |
| 4   | Info     |

我想做的是,当我创建一条新消息时,我可以将 level 作为一个键传递给 jobaids_sections_messages_levels 表,并在检索到一条消息时,我将该级别恢复为

{
    ...
    level: {
        id: 2,
        name: 'Major'
    }
}

我应该如何设置我的协会?到目前为止,我有

this.jobaidMessageLevel.belongsTo(this.jobaidMessage, {
    foreignKey: 'level'
});

虽然我不确定这种关联的逆转 . 它会是某种“多对一”的关系吗?

谢谢!

1 回答

  • 1

    您的消息只有一个级别,从技术上讲,您的级别可以包含许多消息 . 因此,只需声明您的消息 hasOne 级别将执行所需的关联 . 然后,当您下拉消息并包含级别时,它将返回 .

    this.jobaidMessage.hasOne(this.jobaidMessageLevel, {
        foreignKey: 'levelId'
    });
    

相关问题