我正在使用Sequelize for PostgresSQL。例如:我有两张表Friendship
和User
。为了使每个用户都能建立友谊,我有两个关系n:n。
Sequelize中的关联
User.hasMany(Friendship,
{
as: "friendshipsAsked",
foreignKey: "asked_user_id",
joinTableName: "friendship"
});
User.hasMany(Friendship,
{
as: "friendshipsAsking",
foreignKey: "asking_user_id",
joinTableName: "friendship"
});
Friendship.belongsTo(User,
{
...
});
Friendship.belongsTo(User,
{
...
});
我最大的问题是为用户查询友谊。当我拥有用户模型时,我必须获得user.getFriendshipsAsking()
和user.getFriendshipsAsked()
,然后合并两者。
是否有可能改变关系,因此我可以在SQL中使用user.getFriendships()
,使其表现得像SELECT * FROM frienships WHERE requesting_user_id = 'user.id' OR requested_user_id = 'user.id'
?
我想在数据库中的用户之间建立更好的模型friendship
?