将模型引用与关联关联起来

刚开始使用Sequelize,我已经设置了一堆模型和种子,但我无法找出引用与关联。 如果他们甚至做我认为他们做的事,我就没有看到引用的用例,但我无法在文档中找到一个好的解释。

这是多余的参考和协会?

module.exports = (sequelize, DataTypes) => {
  const UserTask = sequelize.define('UserTask',
    {
      id: {
        primaryKey: true,
        type: DataTypes.UUID,
        defaultValue: DataTypes.UUIDV4
      },
      userId: {
        type: DataTypes.UUID,
        references: { // <--- is this redundant to associate
          model: 'User',
          key: 'id'
        }
      }
      // ... removed for brevity
    },
    {
      classMethods: {
        associate: models => { <--- makes references redundant?
          UserTask.belongsTo(models.User, {
            onDelete: 'CASCADE',
            foreignKey: {
              fieldName: 'userId',
              allowNull: true,
              require: true
            },
            targetKey: 'id'
          });
        }
      }
    }
  );
  return UserTask;
};

使用references创建对另一个表的引用,而不添加任何约束或关联。 这意味着这只是一种向数据库发送信号的方式,即表格可以引用另一个表格。

创建association会为属性添加一个外键约束。 而且你可以执行关联功能背后的所有魔法。 即User.getTasks();

有关此处references更多信息:https://sequelize.readthedocs.io/en/latest/docs/associations/#foreign-keys_1

关于此处的association :http://docs.sequelizejs.com/manual/tutorial/associations.html

链接地址: http://www.djcxy.com/p/40601.html

上一篇: Sequelize model references vs associations

下一篇: input LSTM network in PyTorch?