双向或单向ManyToOne doctrine2关联映射

时间:2016-09-27 17:47:52

标签: php doctrine-orm symfony

考虑到这两个实体:

    class Comment {
        private $id;
        private $author;
        private $content;

        /**
         * @ORM\ManyToOne(targetEntity="PM\PlatformBundle\Entity\Article")
         * @ORM\JoinColumn(nullable=false)
         */
        private $article;
        //getters setters
    }

    class Article {
        private $id;
        private $author;
        private $content;
        //getters setters
    }

我选择了ManyToOne它们之间的关系和单向。但我不知道对于这种情况双向是否是个好主意: 例如,我必须在单个视图文章中对一篇文章的所有注释进行排序。同样在后台(管理),我希望能够对一篇文章的所有评论进行排序,如果我选择删除这篇文章,则删除它们。在所有其他情况下(评论文章......)uniderctional是伟大的。 我知道用单向方法可以做到这一点。

你推荐什么?

1 个答案:

答案 0 :(得分:1)

这一切都取决于你对这些实体的用途,但我认为如果文章知道哪些评论与其自身相关而不是相反,那么它会更有用。这样,您可以轻松地操作文章注释而无需使用存储库,或者在树枝模板等中...

由于我并不是真的很喜欢使用第三个表(使用OneToMany单向映射),其中实体两个表完成工作,我建议使用双向映射。