【问题标题】:Doctrine2 - One to many relationship with default valueDoctrine2 - 与默认值的一对多关系
【发布时间】:2013-06-26 06:21:43
【问题描述】:

我有一个公司对象,其中有许多相关的 bankAccount 对象。但是,一家公司只需要一个有效的银行帐户。

在公司对象中标记活动银行帐户的正确方法是什么?

在我当前的实现中,我添加了一个名为 activeBankAccount 的 OneToOne 单向字段,该字段最初可以为空。它似乎有效,但有没有更好的方法来做到这一点?

class Company
{

/**
 * @ORM\OneToMany(targetEntity="BankAccount", mappedBy="company")
 */
private $bankAccounts;

/**
 * @ORM\OneToOne(targetEntity="BankAccount")
 * @ORM\JoinColumn(name="bank_account_id", referencedColumnName="id", nullable=true)
 */
private $activeBankAccount;

}

class BankAccount
{

/**
 * @ORM\ManyToOne(targetEntity="Company", inversedBy="bankAccounts")
 * @ORM\JoinColumn(name="company_id", referencedColumnName="id", nullable=false)
 */
private $company;
}

【问题讨论】:

    标签: doctrine-orm doctrine default-value


    【解决方案1】:

    在我看来,您有两种选择。首先是您的,它具有易于检索和/或更新活动银行帐户的优点(只需要一次查询或更新)。不幸的是,没有什么可以阻止您设置不属于银行帐户集合的 activeBankAccount。另一种方法是直接向 bankaccount 类添加一个 active 属性。但这对搜索和更新有不利之处,在最后一种情况下,它至少需要两次更新。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-09-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-22
      相关资源
      最近更新 更多