尝试使用Sequelize来设计如何正确设置联接,可能是对我整体上不熟悉SQL的帮助。
models.farms.hasMany(models.users, {foreignKey: 'farmId'});
models.users.belongsTo(models.farms, {foreignKey: 'farmId'});
models.users.find({
where: {id:33},
include: [models.farms]
})
.then(function(aResponse) {
aNext(null, aResponse);
})
.catch(function(aError) {
aNext(aError);
});
users表的字段为' farmId',farm表具有相同的字段,我正在尝试使用它来匹配它们,因为我需要特定的ID用于农场稍后的。如果我将用户更新为数学' id'然后它有效,但不是'farmId'这就是我需要的方式。
农场也将有其他联接到farm_area和crop_types,可能更晚,仍然可以解决所有逻辑。
任何帮助都将不胜感激。
答案 0 :(得分:0)
尝试将您的关联放在模型的定义中,例如
sequelize.define('users', {
id: DataTypes.Integer,
farmId: DataTypes.Integer
}, {
classMethods: {
associate: function(models) {
users.belongsTo(models.farms, {
foreignKey: 'farmId'
});
}
}
在尝试使用自定义外键名称时,它对我有用。