【发布时间】:2015-10-07 11:27:29
【问题描述】:
我已经属于模型 User 和 Project 的许多关联。给定用户 ID,查询我们拥有用户拥有的所有项目以及每个项目的所有用户的最简单方法是什么?我当前的方法非常复杂,涉及两个单独的查询,然后使用 Javascript 进行解析。我想我错过了一些可以简化整个过程的重要步骤。以下是我希望返回给最终用户的 REST API 响应。
{
"user_id": "wru09asf",
"projects": [
{
"id": "project_id",
"content": "Final Year Project",
"users": [
{
"id": "user_id",
"role": "Creator"
}
]
}
]
}
目前我正在做
// first function, get all projects
User.findById(user_id).then(function(user) {
user.getProjects({
});
});
// second function, get all users of each project returned
for each project returned, do
Project.findById(project_id).then(function(project) {
project.getUsers();
});
// third function
Combine the two responses using Javascript to get the final API response.
续集模型:
//User (all models are underscored named)
sequelize.define('users', {
id: {
type: DataTypes.STRING,
primaryKey: true
},
password: DataTypes.STRING,
salt: DataTypes.STRING,
email: {
type: DataTypes.STRING,
unique: true
}
});
// Project
sequelize.define('projects', {
id: {
type: DataTypes.STRING,
primaryKey: true
},
content: DataTypes.TEXT
});
// UserProject
sequelize.define('user_project', {
role: DataTypes.STRING
});
关系:
User.belongsToMany(Project, {through: UserProject});
Project.belongsToMany(User, {through: UserProject});
【问题讨论】:
标签: javascript mysql sequelize.js