Sql sequelize hasOne关联如何在数据库级别工作?

Sql sequelize hasOne关联如何在数据库级别工作?,sql,node.js,postgresql,express,sequelize.js,Sql,Node.js,Postgresql,Express,Sequelize.js,我有一个用户和任务模型。现在我希望每个用户只有一个任务 我以这种方式在用户模型中使用了hasOne关联 // models/Task.js class Task extends Model { ... 创建关联时正在执行的SQL查询 "UserId" INTEGER REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE, PRIMARY KEY ("i

我有一个用户和任务模型。现在我希望每个用户只有一个任务

我以这种方式在用户模型中使用了hasOne关联

// models/Task.js
 class Task extends Model {
...
创建关联时正在执行的SQL查询

"UserId" INTEGER REFERENCES "users" ("id") ON DELETE SET NULL ON UPDATE CASCADE, PRIMARY KEY ("id"))
现在,在我的任务createapi中,我将其称为

// routes/tasks.js
...({
    const task = await Task.create(req.body);
    await req.user.setTask(task)
    ....
})
当我第一次叫它时,我希望它能起作用。但当我第二次打电话时,我希望它会破裂,因为这里有1:1的关系,但事实并非如此

我多次调用此函数,发现为同一用户创建了多个任务

所以sequelize ORM只是在我的任务表上创建了一个userId外键?它同样适用于HasMany和belongsTo

如果这些关联对这些不同的关联执行相同的操作(在目标表中创建foriegnKey),那么这些关联的用途到底是什么

如何在这里使用hasOne创建真正的一对一关系

// routes/tasks.js
...({
    const task = await Task.create(req.body);
    await req.user.setTask(task)
    ....
})