如何使用 Sequelize 添加外键和级联属性?



我想为我的express.js Model使用Sequelize实现这个MySQL查询。

CREATE TABLE `Serivce_Area` (
`service_area_id` int auto_increment primary key,
`service_id` int not null,
`area_id` int not null,  
FOREIGN KEY (service_id) REFERENCES Service_Credential(service_id) ON UPDATE CASCADE ON DELETE CASCADE,
FOREIGN KEY (area_id) REFERENCES Area_Details(area_id) ON UPDATE CASCADE ON DELETE CASCADE
);

这里我还有另外两个名为 Service_Credential 和 Area_Details 的表,其中有两个主键,分别命名service_id和area_id。这就是我所做的一切。

const serviceArea = sequelize.define('Serivce_Area', {
service_area_id: {
type: Sequelize.INTEGER,
autoIncrement: true,
allowNull: false,
primaryKey: true
},
service_id:{
type: Sequelize.INTEGER,
allowNull: false
},
area_id: {
type: Sequelize.INTEGER,
allowNull: false
},
});

但是我在添加外键和级联属性时遇到问题。我已经检查了文档。但我仍然不确定该怎么做。此外,一些堆栈溢出答案包含belongsTohasMany属性,我不确定在这种情况下如何使用这些属性。请帮我解决这个问题。

我的朋友帮助我解决了这个解决方案。它奏效了。

service_area_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
primaryKey: true,
autoIncrement: true
},
service_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
references: {
model: 'Service_Credential',
key: 'service_id'
}
},
area_id: {
type: DataTypes.INTEGER(11),
allowNull: false,
references: {
model: 'Area_Details',
key: 'area_id'
}
}

最新更新