所以我使用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
这是正确的实施吗?
对于多对多关系是否还有其他替代品可以更适合这样的事情?
感谢您的帮助!
答案 0 :(得分:2)
看起来你应该有OneToMany self-referencing relationship。我想是因为我认为你正在扩展一个故事(父母),它可以有很多(儿童)故事。正如你所说:
它是原始父故事的孩子
它看起来像单一继承(不是multiple)。