与一个特定实体具有一对多关系的若干实体

时间:2015-10-15 07:09:01

标签: php sql symfony database-design doctrine-orm

想象一下我们有公司银行帐户客户的情况。公司和客户都可以拥有许多银行账户,但银行账户只能属于一个客户或一个公司。我想知道设计这样一个不涉及复杂查询或业务逻辑的数据库的最佳方法,特别是当我们需要从数据库中删除银行帐户时。

我已经看到的一个解决方案是将银行帐户的ID作为JSON字符串数组引用到公司或客户上,如下所示:

In customer or company
======================
id    name  bank_account
1     Bob   [2,3,4,5]

这不是一个糟糕的解决方案,但我想知道是否有更好的方法来做到这一点。

NB: 我使用Symfony 2.7.5构建应用程序,因此使用Doctrine ORM库。

1 个答案:

答案 0 :(得分:1)

处理这种情况的一种方法是让公司和客户继承共同的祖先,比如说用户(看看doctrine inheritance)。然后用户和银行账户之间会有一对多的关系,这很容易实现,并会照顾你所有的依赖关系。