我有桌子User,,Assignment??梢詣摻ê芏鄠€s,這些s只會分配給他,即association。但是很多s可以添加很多s到自己的收藏夾中,即通過表格關聯。FavoriteAssignmentUserAssignmentone to manyUserAssignmentmany to manyFavoriteAssignment我如何才能包含User的創建的作業或他最喜歡的作業?我的意思是,在使用sequelize進行包含時,我應該如何在關聯之間切換?用戶協會: class User extends Model { static associate(models) { User.hasMany(models.Assignment, { foreignKey: 'authorTelegramId'}); User.belongsToMany(models.Assignment, { through: 'FavoriteAssignments', foreignKey: 'telegramId'}); } };作業關聯: class Assignment extends Model { static associate(models) { Assignment.belongsTo(models.User, {foreignKey: 'authorTelegramId'}); Assignment.belongsToMany(models.User, {through: 'FavoriteAssignments', foreignKey: 'assignmentId'}); } };FavouriteAssignment 的關聯: class FavoriteAssignment extends Model { static associate(models) { FavoriteAssignment.belongsTo(models.User, {foreignKey: 'telegramId'}); FavoriteAssignment.belongsTo(models.Assignment, {foreignKey: 'assignmentId'}); } };我提出這個問題是因為當我這樣做時:const result = await db.User.findAll({ include: [{ model: db.Assignment }]});它獲取所有User最喜歡的作業,如belongsToMany最后定義的那樣!如果我注釋User.belongsToMany(models.Assignment, { through: 'FavoriteAssignments', foreignKey: 'telegramId'});行,那么它將獲取所有User創建的作業(one to many關聯)。如果我有多個關聯,如何選擇要使用的關聯?
在 Sequelize 中切換關聯(同時進行一對多和多對多)
慕無忌1623718
2023-08-05 20:59:51