我正面临一个问题,因为将两个模型与 Sequelize 联系起来花费了几个小时。
var Ticket = sequelize.define("Ticket", {
IDTicketBase: { type:DataTypes.INTEGER, primaryKey: true },
IDStatus: DataTypes.INTEGER,
}
associate: function(models){
models.Ticket.hasOne(models.Status, {foreignKey: 'IDStatus'} );
}
var Status = sequelize.define("Status", {
IDStatus : { type:DataTypes.INTEGER, primaryKey: true },
Name: DataTypes.STRING
}
associate: function(models){
models.Status.belongsTo(models.Ticket, {foreignKey: 'IDStatus'} );
}
此代码生成关系 Ticket.IDTicketBase = Status.IDStatus。
如果我想要关系 Ticket.IDStatus= Status.IDStatus ,我必须在我的两个模型上写什么?
我想以 1 对 1 的方式进行生产。
感谢您的回复;)
最佳答案
I want to produce on 1 to 1 association.
给你。关系模型中没有 1 对 1 的关系。如果两个关系中的元组之间存在 1 对 1 的关系,那么这只是一种关系,而不是两种关系。
在关系模型中,一对多关系是通过在第二个关系中包含一个关系的主键来建模的,而多对多关系是通过引入包含您想要的两个关系的主键的第三个关系来建模的要连接。真的不存在一对一的关系。例如,您可能会说用户和她的姓名之间存在一对一的关系,但实际上,您只是首先将该姓名包含在用户的关系中。
关于node.js - NodeJS Sequelize - 错误的关系方向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43363681/