在 sequelize 中关联引用 table
Associating a reference table in sequelize
我有几个 table 试图在 Sequelize 中关联——一个 jobaids_sections_messages
table 包含用户输入的消息,一个 jobaids_sections_messages_levels
table 这是消息 table 使用的静态引用。他们是这样设置的
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
table设置如下:
| id | name |
| --- | -------- |
| 1 | Critical |
| 2 | Major |
| 3 | Warning |
| 4 | Info |
我想做的是,当我创建一条新消息时,我可以将 level
作为键传递给 jobaids_sections_messages_levels
table,并且在检索消息时,我得到的水平是
{
...
level: {
id: 2,
name: 'Major'
}
}
我应该如何在这里设置我的关联?到目前为止,我有
this.jobaidMessageLevel.belongsTo(this.jobaidMessage, {
foreignKey: 'level'
});
虽然我不确定这个关联的逆转。会是某种 "many-to-one" 关系吗?
谢谢!
您的消息只有一个级别,从技术上讲,您的级别可以有很多消息。因此,只需说明您的消息 hasOne
级别即可完成所需的关联。然后,当您下拉一条消息并包含该级别时,它会回来。
this.jobaidMessage.hasOne(this.jobaidMessageLevel, {
foreignKey: 'levelId'
});
我有几个 table 试图在 Sequelize 中关联——一个 jobaids_sections_messages
table 包含用户输入的消息,一个 jobaids_sections_messages_levels
table 这是消息 table 使用的静态引用。他们是这样设置的
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
table设置如下:
| id | name |
| --- | -------- |
| 1 | Critical |
| 2 | Major |
| 3 | Warning |
| 4 | Info |
我想做的是,当我创建一条新消息时,我可以将 level
作为键传递给 jobaids_sections_messages_levels
table,并且在检索消息时,我得到的水平是
{
...
level: {
id: 2,
name: 'Major'
}
}
我应该如何在这里设置我的关联?到目前为止,我有
this.jobaidMessageLevel.belongsTo(this.jobaidMessage, {
foreignKey: 'level'
});
虽然我不确定这个关联的逆转。会是某种 "many-to-one" 关系吗?
谢谢!
您的消息只有一个级别,从技术上讲,您的级别可以有很多消息。因此,只需说明您的消息 hasOne
级别即可完成所需的关联。然后,当您下拉一条消息并包含该级别时,它会回来。
this.jobaidMessage.hasOne(this.jobaidMessageLevel, {
foreignKey: 'levelId'
});