在oneToMany关系中,在两个不同的实体中使用一个实体是一种好的做法吗?

时间:2015-09-28 20:49:00

标签: symfony doctrine entity

我实际上有3个实体: Bounty 文档评论。当我第一次创建评论实体时,就是提供文档评论目的。后来我添加了一个名为“ Bounty ”的新实体,我希望使用我在文档实体中使用的相同注释实体。

我希望避免使用一个 DocumentComment 实体和另一个 BountyComment 实体。

是否有一个评论实体是一个很好的方法,或者我应该在两个不同的实体中分开它们?

如果分组参与是一种很好的做法,那么当可以重复输入时,我怎样才能使它们适合?

1 个答案:

答案 0 :(得分:1)

如果两个身份具有完全相同的结构并且这个事实永远不会改变,那么您可以将它们组合在一起。但是,每个注释都属于某个其他实体,因此如果它属于Document,则需要属性“document”。如果它属于Bounty,则需要属性“赏金”。所以两者不一样。

如果您正在使用ORM(例如Doctrine),则可以使用共享基类并从中扩展。 Doctrine将为每种类型创建单独的表,但您可以在实体类之间共享功能。见http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html