gpt4 book ai didi

sequelize.js - Sequelize 与一个表的关联 "hasMany"其他表

转载 作者:行者123 更新时间:2023-12-03 22:40:59 27 4
gpt4 key购买 nike

将同一个表关联到多个表的最佳方法是什么。我在 mysql 数据库中有 3 个表,所有者,宠物,帖子。业主有很多宠物,业主也有很多职位。当我在 Posts and Pets 模型中进行如下关联时

Posts.associate = function(models) {
Posts.belongsTo(models.Owners, {
foreignKey: {
allowNull: false
}
});
};
Pets.associate = function(models) {
Pets.belongsTo(models.Owners, {
foreignKey: {
allowNull: false
}
});
};

在 Owners 模型中,我试图建立关联,有很多,就像这样:
Owners.associate = function(models) {
Owners.hasMany(models.Pets, {
onDelete: "cascade"
});
};
Owners.associate = function(models) {
Owners.hasMany(models.Posts, {
onDelete: "cascade"
});
};

但我不断收到错误,其中任一表与 Owners 表无关。有没有更好的方法让这个协会发挥作用?

最佳答案

您只需要在 Owners 模型上使用 hasMany,其他模型上不需要使用belongsTo。当您使用 hasMany 时,它会在目标模型上创建 OwnerId,我建议使用 as 以便您可以识别
如果您需要对查询执行 Include ,则是关键。此外,您只需定义一次关联函数:

Owners.associate = function(models) {
Owners.hasMany(models.Pets, {
as: 'OwnerPets',
onDelete: "cascade"
});
Owners.hasMany(models.Posts, {
as: 'OwnerPosts',
onDelete: "cascade"
});
};

关于sequelize.js - Sequelize 与一个表的关联 "hasMany"其他表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46678549/

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