如何在node.js中使用sequelize npm实现与联接表的一对多关系
我正在node.js中使用sequelize作为MySQL ORM编写RESTAPI。我知道,如何使用sequelize关联实现两个表之间的n:m关系。sequelize的官方文档对此有很好的定义 我希望使用联接表实现一对多关系 我的实现方法: parent.model.js如何在node.js中使用sequelize npm实现与联接表的一对多关系,node.js,orm,sequelize.js,Node.js,Orm,Sequelize.js,我正在node.js中使用sequelize作为MySQL ORM编写RESTAPI。我知道,如何使用sequelize关联实现两个表之间的n:m关系。sequelize的官方文档对此有很好的定义 我希望使用联接表实现一对多关系 我的实现方法: parent.model.js module.exports = function(sequelize, DataTypes){ var Parent = sequelize.define('parent', {
module.exports = function(sequelize, DataTypes){
var Parent = sequelize.define('parent', {
parent_id:{
type:DataTypes.INTEGER,
field:'parent_id',
primaryKey: true,
autoIncrement: true,
unique:true
},
parent_name:{
type: DataTypes.STRING,
field: 'parent_name'
},
},
{
classMethods:{
associate:function(models){
Parent.belongsToMany(models.child, {
through:'parent_child_mapping',
foreignKey:'parent_id'
});
}
}
}
);
return Parent;
}
child.model.js
module.exports = function(sequelize, DataTypes){
var Child = sequelize.define('child', {
child_id:{
type:DataTypes.INTEGER,
field:'child_id',
primaryKey: true,
autoIncrement: true,
unique:true
},
child_name:{
type: DataTypes.STRING,
field: 'child_name'
},
},
{
classMethods:{
associate:function(models){
Child.belongsTo(models.parent, {
through:'parent_child_mapping',
foreignKey:'child_id'
})
}
}
}
);
return Child;
}
同步后,新表结构如下所示:
我的问题:
- 为什么sequelize要创建外键childId李>
- 它能完美地工作吗
Parent.hasMany
而不是
Parent.belongsToMany
如果你写“belongtomany”,它实际上创建了n:m关系,如这里所述
编辑:这是“hasMany”的文档:
我希望使用第三个表进行一对多关联。hasMany用于在没有联接表的情况下建立1:m关联