gpt4 book ai didi

node.js - 我如何通过另一个在 Sequelize 中具有一对一关系的表来关联两个表

转载 作者:行者123 更新时间:2023-12-03 22:30:51 25 4
gpt4 key购买 nike

我有 3 张 table A、B 和 C。
A和B是一对一的关系。 B和C是一对多的关系。
我的问题是如何通过 B 关联 A 和 C。例如:
A 有列 a_id, message
B 有列 b_id, a_id (foreign_key)
C 有列 c_id, b_id(foreign_key)
我将如何在 Sequelize 中通过 B 创建 A 和 C 之间的关联?

最佳答案

您可以使用 relational many-to-many table association 在关联中使用 through 关键字来引用 B 并为关系指定 foreignKeyotherKeyas 名称。

// associate ModelA to ModelC through ModelB
ModelA.associate = (models) => {
// A to C
ModelA.belongsToMany(models.ModelC, {
as: 'AtoC',
foreignKey: 'a_id',
otherKey: 'b_id',
through: 'ModelB',
});
}

// associate ModelC to ModelA through ModelB
ModelA.associate = (models) => {
ModelC.belongsToMany(models.ModelA, {
as: 'CtoA',
foreignKey: 'b_id',
otherKey: 'a_id',
through: 'ModelB',
});
}
要查询关系,请为关联指定 modelasthrough
const result = await ModelA.findById(aID, {
include: {
model: 'ModelC',
as: 'AtoC',
through: 'ModelB',
}
});

关于node.js - 我如何通过另一个在 Sequelize 中具有一对一关系的表来关联两个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67158020/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com