Sequelize – 两个ID的双连接表
如果我有一个“用户”表和一个“后续”表(“后续”有UserId和FollowedId,都指“用户”表上的用户)
“followings”基本上是一个用户“跟随”另一个用户
如何设置关联,以便在使用Followings模型查询和包含用户模型时,它将包含两列的嵌套信息?
例:
Users | id | name | email | etc | Followings | id | UserId | FollowedId |
UserId和FollowedId都与“用户”表上的用户相关联。
我试过这个:
User.hasMany(Following); Following.belongsTo(User, {foreignKey: 'FollowedId'}); Following.belongsTo(User, {foreignKey: 'UserId'});
但是当我使用:
Followings.find({ include: User })
它只会在UserId上嵌套信息,而不是FollowedID用户。
如果这是令人困惑的问题,请提出问题,谢谢!
编辑:使用PostgreSQL
我想如果你给一个名字的belongsTo
你可以在你的include中指定关系。 所以像这样:
User.hasMany(Following); Following.belongsTo(User, {foreignKey: 'FollowedId', as: 'Followee'}); Following.belongsTo(User, {foreignKey: 'UserId', as: 'User'});
与包括像:
Followings.find({ include: [ { model: User, as: 'Followee' }, { model: User, as: 'User' }, ] })