簡體   English   中英

同時使用hasOne和belongsTo是否有意義?

[英]Does it have any sense using hasOne and belongsTo at the same time?

我有以下情況:

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'
});

如果我不應該同時使用它們,我不會理解。 屬於可能是,但也必須使用hasOne嗎?

一般規則:是,您應該同時定義兩者。

從實際的角度來看,如果需要在實例上調用fooInstance.setBarfooInstance.getBar方法,則應該為模型Foo定義關聯。 如果需要執行Foo.find(..., { include: [Bar] });還應該定義關聯Foo.find(..., { include: [Bar] });

從概念的角度來看,您應該詢問雙向關系是否有意義。 如果Foo屬於Bar,這是否意味着Bar具有一個(或多個)Foo? 通常,該問題的答案是肯定的。

通過執行這兩個定義,您可以選擇帳戶的地址和地址的帳戶。

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

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM