续集关于文档的关联解释

时间:2018-05-17 08:02:16

标签: node.js associations sequelize.js

在阅读sequelize doc association部分时,下面的解释确实让我困惑

  

hasOne和belongsTo在不同的模型中插入关联键   彼此。 hasOne在目标模型中插入关联键   而belongsTo在源模型中插入关联键。

还有,

Player.belongsTo(Team); // Will add a teamId attribute to Player to hold the primary key value for Team

似乎如果我在两个模型之间设置关系,sequelize会自动将外键添加到目标模型。

但根据文章, https://lorenstewart.me/2016/09/12/sequelize-table-associations-joins/z

我们必须手动将外键添加到模型文件中。

哪一个是对的??

自从我质疑这个问题以来已经有一段时间了。

真的很感激任何详细的解释。

任何关于续集关联阅读的推荐文章也会受到赞赏,因为sequelize doc对于ORM初学者来说似乎不那么好。

1 个答案:

答案 0 :(得分:1)

实际上这取决于你是如何创建表的。通过syncmigrations

例如

const User = sequelize.define('user', {
  username: Sequelize.STRING,
});

const Address = sequelize.define('add', {
  address: Sequelize.STRING,
});

User.hasOne(Address);

sequelize.sync({ force: true })
  .then(() => User.create({
    username: 'test'
  }))
  .then(item => {
    console.log(item.dataValues.itemPrice);
  });

这将在数据库中创建userId字段

this

请注意,我使用sync。但是,如果您使用迁移,则必须自己创建。

PS:最好使用migrations代替sync