2016-09-05 8 views
0

sequelizeでダイナミックアソシエーションを作成します。 プロジェクトに所属するユーザーがいるとします。 これらのユーザーは、プロジェクトで異なるロールを使用します。 など。私は別々のテーブル内のすべての役割を持っているSequelizeでのダイナミックアソシエーション

Project.hasMany(User, { as: "developers"}) 
... 

:一部のユーザーは他の人が私のように、私はちょうどそれらを追加できることを知っている建築家など

var User = sequelize.define("user", {...}) 
var Project = sequelize.define("project", {...}) 

var ProjectUser = Project.hasMany(Users) 

ている開発者です。

var Role = sequelize.define("role", {...}) 

役割に応じて関連付けを行うにはどうすればよいですか。私はあなたがこのような何かを行うことができますsequelizeのドキュメントを読み込む

var UserProject("userProject", { 
    userId: ..., 
    roleId: ...., 
    projectId: ... 
}) 

Project.hasMany(User, { through: UserProject }) 

答えて

1

:よう
何か。 http://docs.sequelizejs.com/en/latest/api/associations/belongs-to-many/

UPDATE:

実はこれは私がやりたいする可能性を与えるが、 私は、データを照会する方法がわかりません。

たとえば、特にプロジェクトのインスタンスでは、ユーザーがどのような役割を持っているかをどのように知ることができますか。

sequelize.define("project", { }, { 
    instanceMethods: { 
     getPublicRepresentation() { 
      this.users //how do I know the role of the user here? 
     } 
    } 
}) 

もう1つの問題は、質問したいときです。

Project.findAll({ 
    include: { 
     model: User 
    } 
}) 

どのようにしてwhereロールが等しくなるのですか。