Sequelize-要定义外键,我应该使用引用还是belongsTo?或两者?

时间:2018-08-15 19:16:49

标签: node.js express sequelize.js

据我所知,续集有两种定义外键的方法。

首先,像这样使用references

sequelize.define('foo', {
    bar_id: {
        type: 'blahblah',
        references: {
           model: Bar,
           key: 'id'
        }
    }
});

第二,使用belongsTo方法:

Foo.belongsTo(Bar, { foreignKey: 'bar_id', targetKey: 'id' });

然后,当我在模型中定义外键时,应该使用其中之一吗?还是两者都有?

  • 如果我要同时使用两者,
  • 或者如果belongsTo足以定义外键,我是否可以删除bar_id中的sequelize.define('foo', {...})定义?

1 个答案:

答案 0 :(得分:2)

根据他们的文档,如果您不想创建关联和约束,则可以使用引用来创建FK。否则,请使用HasOne,HasMany或BelongsTo。

http://docs.sequelizejs.com/manual/tutorial/associations.html#enforcing-a-foreign-key-reference-without-constraints

我个人只使用过HasOne,HasMany和BelongsTo方法。

在上述链接上回顾整个“协会”部分可能是个好主意。