我想在sequelize中创建一个动态关联。 假设我有属于项目的用户。 这些用户在项目中扮演不同的角色。 例如。一些用户是开发人员,其他人是建筑师等。
var User = sequelize.define("user", {...})
var Project = sequelize.define("project", {...})
var ProjectUser = Project.hasMany(Users)
我知道我可以将它们添加为:
Project.hasMany(User, { as: "developers"})
...
我将所有角色都放在一个单独的表格中。
var Role = sequelize.define("role", {...})
如何根据角色进行关联?
类似的东西:
var UserProject("userProject", {
userId: ...,
roleId: ....,
projectId: ...
})
Project.hasMany(User, { through: UserProject })
答案 0 :(得分:2)
我在sequelize文档中读到你可以做这样的事情。 http://docs.sequelizejs.com/en/latest/api/associations/belongs-to-many/
更新:
实际上这让我有可能做我想做的事,但是 我当时不知道如何查询数据。
例如,我如何知道用户所拥有的角色,尤其是在项目实例中。
sequelize.define("project", { }, {
instanceMethods: {
getPublicRepresentation() {
this.users //how do I know the role of the user here?
}
}
})
我还在遇到的另一个问题是,当我想查询时。
Project.findAll({
include: {
model: User
}
})
如何让where角色等于......?