Mysql 未在1:1关联中使用sequelize分配外键
我有3个模型用户,问题和视频Mysql 未在1:1关联中使用sequelize分配外键,mysql,node.js,associations,sequelize.js,Mysql,Node.js,Associations,Sequelize.js,我有3个模型用户,问题和视频 视频属于一个用户,也属于一个问题 用户有很多问题,而一个问题只有一个视频 我已经完成了用户和视频模型之间的关联,但是对于视频问题1还没有。外键已成功创建,但在create方法上未分配questionId 她的快照展示了模型和create函数的外观。 视频模型 'use strict'; module.exports = (sequelize, DataTypes) => { var Video = sequelize.define('Video', {
- 视频属于一个用户,也属于一个问题
- 用户有很多问题,而一个问题只有一个视频
- 我已经完成了用户和视频模型之间的关联,但是对于视频问题1还没有。外键已成功创建,但在create方法上未分配questionId
'use strict';
module.exports = (sequelize, DataTypes) => {
var Video = sequelize.define('Video', {
transcription: {
type: DataTypes.TEXT
},
});
Video.associate = (models) => {
Video.belongsTo (models.Question,
{foreignKeyContraint : true , foreignKey: "questionId" });
}
Video.associate = (models) => {
Video.belongsTo(models.User, {
onDelete: "CASCADE",
foreignKey: 'userId'
});
}
return Video;};
问题模型:
module.exports = (sequelize, DataTypes) => {
var Question = sequelize.define('Question', {
text: {
type: DataTypes.TEXT,
allowNull: false,
}
});
Question.associate = (models) => {
Question.belongsTo(models.Script, {
onDelete: "CASCADE",
foreignKey: 'scriptId'
});
}
Question.associate = (models) => {
Question.hasMany(models.Questionvariation,
{
foreignKey: 'questionId',
as: 'questions',
});
}返回问题;}
用于创建功能
create(req, res) {
return Video
.create({
userId: req.body.user_id,
questionId: req.body.question_id,
transcription: req.body.transcription
})
.then(video =>
res.status(201).send(video))
.catch(error =>
res.status(400).send(error));
}
视频是创建的,但是它完全忽略了questionId的存在。好的,我已经解决了它,问题是我必须在问题模型中添加一个hasOne关联