如果我有一个"用户"表和"关注" table("关注"有UserId和FollowedId,两者都是指用户"用户"表)
"追随中"基本上当一个用户"跟随"另一个用户
如何设置关联,以便在使用Followings Model查询并包含Users模型时,它将包含BOTH列的嵌套信息?
示例:
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
答案 0 :(得分:3)
我认为如果你给belongsTo
命名,你可以在你的包含中指定关系。如下所示:
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' },
]
})