在两个模型之间有多个关联 Sequelize

Having multiple associations between two models Sequelize

我正在为应用程序设计数据库模式。它有两个型号。

用户将通过两种方式与团队相关联

  1. 作为所有者

    Team.belongsTo(用户, { foreignKey: "fk_ownerId" });

    User.hasMany(团队, { foreignKey: "fk_ownerId" });

  2. 作为会员

    User.belongsToMany(团队, { 通过: 'TeamToUser' });

    Team.belongsTo许多(用户,{ 通过:'TeamToUser' });

所以我最终在两个模型之间建立了多个关联。

在两个模型之间建立多重关联是否是一个好习惯,或者是否有任何其他方法可以设计这两个模型,以便我可以使用最少的代码高效地获取数据?

一切看起来都不错,只是您没有为您的关联指定别名。我强烈建议您在这种情况下这样做:

Team.belongsTo(User, { foreignKey: "fk_ownerId", as: 'owner' });
User.hasMany(Team, { foreignKey: "fk_ownerId", as: 'ownedTeams' });
User.belongsToMany(Team, { through: 'TeamToUser', as: 'teams' });

Team.belongsToMany(User, { through: 'TeamToUser', as: 'members' });