我实际上有3个实体: Bounty ,文档和评论。当我第一次创建评论实体时,就是提供文档评论目的。后来我添加了一个名为“ Bounty ”的新实体,我希望使用我在文档实体中使用的相同注释实体。
我希望避免使用一个 DocumentComment 实体和另一个 BountyComment 实体。
是否有一个评论实体是一个很好的方法,或者我应该在两个不同的实体中分开它们?
如果分组参与是一种很好的做法,那么当可以重复输入时,我怎样才能使它们适合?
答案 0 :(得分:1)
如果两个身份具有完全相同的结构并且这个事实永远不会改变,那么您可以将它们组合在一起。但是,每个注释都属于某个其他实体,因此如果它属于Document,则需要属性“document”。如果它属于Bounty,则需要属性“赏金”。所以两者不一样。
如果您正在使用ORM(例如Doctrine),则可以使用共享基类并从中扩展。 Doctrine将为每种类型创建单独的表,但您可以在实体类之间共享功能。见http://doctrine-orm.readthedocs.org/en/latest/reference/inheritance-mapping.html