【发布时间】:2014-07-14 11:36:01
【问题描述】:
我想知道如何处理需要不同类型实体的用例。就我而言,我想创建一个批准实体。然而,我必须区分不同类型的批准。
我想知道是否应该创建一个type 字段,然后通过我也存储在数据库中的类型常量来处理不同的类型,例如:
use Doctrine\ORM\Mapping as ORM;
/**
* Approval
*
* @ORM\Table()
* @ORM\Entity(repositoryClass="Hn\AssetDbBundle\Entity\ApprovalRepository")
*/
class Approval
{
const SOME_TYPE = 1;
const SOME_OTHER_TYPE = 2;
/**
* @var integer
* @ORM\Column(name="type", type="integer")
*/
private $type;
}
另一种方法是使我的Approval 实体抽象,然后从中扩展SomeTypeApproval 和SomeOtherTypeApproval。对我来说,这似乎是一个更 OOP 的解决方案,但正如问题所暗示的那样,我有点不确定。
所以我想知道每种方法的优缺点是什么,以便决定我应该遵循哪条路线。
【问题讨论】:
标签: oop symfony inheritance doctrine-orm entity