【问题标题】:Sequelize model references vs associations续集模型参考与关联
【发布时间】:2018-02-28 12:50:49
【问题描述】:

刚开始使用 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;
};

【问题讨论】:

  • 我也在想同样的事情。

标签: node.js sequelize.js


【解决方案1】:

使用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

【讨论】:

  • 所以我不能只在我的模型中使用引用来执行连接?我“必须”有关联?
猜你喜欢
  • 1970-01-01
  • 2020-05-30
  • 2019-07-26
  • 2015-06-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-12-09
  • 2017-05-30
相关资源
最近更新 更多