【问题标题】:Is this a good practice to use one entity in two different entities in a oneToMany Relationship?这是在 oneToMany 关系中的两个不同实体中使用一个实体的好习惯吗?
【发布时间】:2015-09-28 20:49:00
【问题描述】:

我实际上有 3 个实体:BountyDocumentComment。当我第一次制作 Comment 实体时,它是为了服务于文档 Commentary 的目的。后来我添加了一个名为“Bounty”的新实体,并且我希望使用我已经在 Document 实体中使用的相同 Comment 实体。

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

拥有一个评论实体是一种很好的处理方式,还是我应该将它们分成两个不同的实体?

如果对实体进行分组是一种很好的做法,那么当可能存在重复条目时,我怎样才能使它们适合?

【问题讨论】:

  • 这是一个偏好问题。在我看来,我更愿意将BountyComments 与DocumentComments 分开。从长远来看,这将更加清洁。

标签: symfony doctrine entity


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-03-01
    • 1970-01-01
    相关资源
    最近更新 更多