学说:这应该是多对多吗?

时间:2014-08-12 03:30:01

标签: symfony orm doctrine-orm

所以我使用Symfony2和Doctrine并且不确定关系。该网站的目标是允许用户浏览和上传故事。我试图实现的一个功能是用户可以扩展其他故事。例如,如果我喜欢一个幻想故事,并想在同一个世界中写一个故事集,我可以扩展它,使它成为原始父故事的一个孩子。一个故事可以有多少父母或孩子没有限制。

我起初认为它是一个自我引用多对多关系,名为$parents的属性和一个名为$children的属性,但我不确定如何实际实现。概念上比代码更多。

我现在拥有的是(在Story.orm.yml中):

parents:
  targetEntity: Story
    inversedBy: children
    joinTable:
      name: parents
      joinColumns:
        child_id:
          referencedColumnName: id
      inverseJoinColumn:
        parent_id:
          referencedColumnName: id

这是正确的实施吗?

对于多对多关系是否还有其他替代品可以更适合这样的事情?

感谢您的帮助!

1 个答案:

答案 0 :(得分:2)

看起来你应该有OneToMany self-referencing relationship。我想是因为我认为你正在扩展一个故事(父母),它可以有很多(儿童)故事。正如你所说:

  

它是原始父故事的孩子

它看起来像单一继承(不是multiple)。