我正在重写一个应用程序以利用sequelize。到目前为止,在文档的帮助下。我创建了以下带有关联的模型。员工表是自引用的,并且有一个指向员工表 ID 的 managerid 列。如何创建关联并查询此类表,同时将其与地址等其他表连接?
员工模型
var employee = db.seq.define('Employee',{
id: { type: db.Sequelize.INTEGER},
managerId: { type: db.Sequelize.INTEGER},
employee_name: { type: db.Sequelize.STRING}
...
});
employee.hasOne(address);
地址模型
var adress= db.seq.define("Adresss",{
employee_id: { type: db.Sequelize.INTEGER},
...
});
address.belongsto(employee);
使用别名将
belongsTo
关联添加到同一模型:
employee.belongsTo(employee, { foreignKey: 'managerId', as: 'Manager' });
现在您可以获得一名员工和一名相关经理:
const found = await employee.findById(id, {
include: [{
model: employee,
as: 'Manager'
}, address]
});
Anatoly,感谢有用的评论。这对我有用。