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
}]
});
你能详细说明一下你调用这段代码的上下文吗?当然可以。我在定义模型帐户和地址的定义中的关联时调用此代码。您能详细说明一下调用此代码的上下文吗?是的,当然。我在定义模型帐户和地址的定义中的关联时调用此代码