Javascript 同时使用hasOne和belongsTo有什么意义吗?

Javascript 同时使用hasOne和belongsTo有什么意义吗?,javascript,sql,node.js,associations,sequelize.js,Javascript,Sql,Node.js,Associations,Sequelize.js,我有一个类似以下的场景: Account.belongsTo(models.Address, { as: 'address', foreignKey: { name: 'addressId', field: 'address_id' }, onDelete: 'RESTRICT' }); Address.hasOne(models.Account, { as: 'account', foreignKey: { name: 'addressId', fie

我有一个类似以下的场景:

Account.belongsTo(models.Address, {
    as: 'address',
    foreignKey: { name: 'addressId', field: 'address_id' },
    onDelete: 'RESTRICT'
});

Address.hasOne(models.Account, {
    as: 'account',
    foreignKey: { name: 'addressId', field: 'address_id' },
    onDelete: 'RESTRICT'
});

我不明白我是否应该同时使用它们。belongs可能是的,但有必要同时使用hasOne?

作为一般规则:是的,您应该同时定义这两个

从实际的角度来看,如果需要调用实例上的
fooInstance.setBar
fooInstance.getBar
方法,则应该定义模型
Foo
的关联。如果需要执行
Foo.find(…,{include:[Bar]}),还应该定义关联


从概念的角度来看,你应该问这种双向关系是否有意义。如果一个Foo属于一个酒吧,这是否意味着一个酒吧有一个(或多个)Foo?通常,这个问题的答案是肯定的。

作为一般规则:是的,你应该定义两者

从实际的角度来看,如果需要调用实例上的
fooInstance.setBar
fooInstance.getBar
方法,则应该定义模型
Foo
的关联。如果需要执行
Foo.find(…,{include:[Bar]}),还应该定义关联


从概念的角度来看,你应该问这种双向关系是否有意义。如果一个Foo属于一个酒吧,这是否意味着一个酒吧有一个(或多个)Foo?通常这个问题的答案是肯定的。

这两种定义都允许您选择帐户的地址和地址的帐户

models.account.findAll({
  include: [{
    model: models.address
  }]
});

models.address.findAll({
  include: [{
    model: models.account
  }]
});

这两种定义都允许您选择帐户的地址和地址的帐户

models.account.findAll({
  include: [{
    model: models.address
  }]
});

models.address.findAll({
  include: [{
    model: models.account
  }]
});

你能详细说明一下你调用这段代码的上下文吗?当然可以。我在定义模型帐户和地址的定义中的关联时调用此代码。您能详细说明一下调用此代码的上下文吗?是的,当然。我在定义模型帐户和地址的定义中的关联时调用此代码