假设条件是用户有很多项目
var User = sequelize.define('user', {
id: { type: Sequelize.INTEGER, primaryKey: true},
name: Sequelize.STRING,
}, {
underscored: true,
constraints: false
})
var Project = sequelize.define('project', {
id: { type: Sequelize.INTEGER, primaryKey: true},
title: Sequelize.STRING,
}, {
underscored: true,
constraints: false
})
Project.belongsTo(User)
User.hasMany(Project)
Run Code Online (Sandbox Code Playgroud)
如果我已经在数据库中有用户记录
{ id: 1, name: "spondbob" }
Run Code Online (Sandbox Code Playgroud)
如何与该用户创建项目?我在某个地方看到我们可以在创建项目时执行此操作
{
id: 1,
title: "Project 1",
user_id: 1
}
Run Code Online (Sandbox Code Playgroud)
但是,除了直接提及外键之外,还有其他优雅的方式来设置用户吗?
我也知道我可以创建项目并执行,project.setUser(user)但问题是user_id外键设置为 NOT NULL。在这种情况下,我必须user_id在创建项目时添加,而不是在创建后设置它。
另外,如果我需要创建多个项目并将其分配给一个用户,我该如何实现呢?
{
id: 1,
title: "Project 1",
user_id: 1
}
Run Code Online (Sandbox Code Playgroud)
如果您指定了外键名称,上面的代码才有效,如下所示:
Project.belongsTo(User, {foreignKey: 'user_id'})
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1849 次 |
| 最近记录: |