有没有办法在 Sequelize 中将一个 table 的属性与另一个 table 的任何属性相关联?

Is there a way to associate one table's an attribute to another table's any attribute in Sequelize?

有一个叫Order的table,Order有PK(id)和一个属性(company_id)。

其他 table 是 Company_Parameter 具有 PK(Id) 和属性 (cid)。

我想在 Order.company_id = Company_Parameter.cid 上连接这些 table,但是 company_id 和 cid 不是主键。

我在sequelize中设置了这样的关联:

Order.hasMany(公司参数, { 外键:'cid', targetKey: 'company_id', }); companyParameters.belongsTo(订单,{ 外键:'cid', targetKey: 'company_id', });

但是这些关联 运行:

ON Order.id = companyParameters.cid;

我要运行

ON Order.company_id = companyParameters.cid;

hasMany 中,您应该使用 sourceKey 选项来指示其他模型的密钥,而不是 targetKey 一个。

Order.hasMany(companyParameters, { foreignKey: 'cid', sourceKey: 'company_id', });