gpt4 book ai didi

mysql - 未使用 1 :1 association 中的sequelize 分配外键

转载 作者:行者123 更新时间:2023-11-29 18:35:45 25 4
gpt4 key购买 nike

我有 3 个模型“用户”、“问题”和“视频”

  • 一段视频属于一位用户,也属于一个问题
  • 用户有很多问题,而一个问题只有 1 个视频
  • 我已经完成了用户和视频模型之间的关联,但尚未完成视频问题。外键已成功创建,但在创建方法中未分配 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关联

关于mysql - 未使用 1 :1 association 中的sequelize 分配外键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45313996/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com