NodeJS Sequelize - 错误的关系方向

时间:2017-04-12 08:01:19

标签: node.js foreign-keys sequelize.js

我正在面对一个问题,因为很少用两小时将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的关联产生。

感谢您的回复;)

1 个答案:

答案 0 :(得分:0)

  

我希望以1比1的关联产生。

你走了。关系模型中没有1对1的关系。如果你在两个关系中的元组之间有一对一的关系,那么这只是一个关系,而不是两个。

在关系模型中,通过在第二个关系中包含一个关系的主键来建模一对多关系,并通过引入包括两个关系的主键的第三关系来建模多-t-many关系。你想要连接。真的没有一对一的关系。例如,您可能会说用户与其姓名之间存在一对一的关系,但实际上您只是在用户的关系中包含该名称。