多个关系n:n到续集中的一个表

时间:2016-07-07 09:17:16

标签: node.js postgresql sequelize.js

我正在使用Sequelize for PostgresSQL。例如:我有两张表FriendshipUser。为了使每个用户都能建立友谊,我有两个关系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

0 个答案:

没有答案