原则2关系用法



我有两个数据库表

  1. 文章
  2. 存档

每篇文章在Archive表中可以有多条记录。

这就是存档实体的样子(显示仅用于理解问题)

/**
 * Archive
 *
 * @ORMTable(name="archive")
 * @ORMEntity
 */
class Archive
{
   .....................................................
   /**
     * @var Articles
     *
     * @ORMManyToOne(targetEntity="Articles")
     * @ORMJoinColumns({
     *   @ORMJoinColumn(name="article_id", referencedColumnName="id")
     * })
     */
     private $article;
   .....................................................
   /**
     * Set article
     *
     * @param Articles $article
     * @return Archive
     */
    public function setArticle(EntitiesArticles $article = null)
    {
        $this->article = $article;
        return $this;
    }
    /**
     * Get article
     *
     * @return Articles 
     */
    public function getArticle()
    {
        return $this->article;
    }
    ....................................................
}

在本实体中有对文章实体的引用,但在文章实体中没有对档案实体的引用。

所以问题是——我需要参考文章中的存档实体吗?它有什么好处和缺点?据我所知,有很多推荐信是不好的(http://docs.doctrine-project.org/en/latest/reference/best-practices.html#constrain-尽可能多的关系)。那么,我在哪里可以判断我是否需要它呢?

这主要是架构和便利性的决定。

  • Article是否需要了解存档条目
  • 我需要通过文章访问存档条目吗

第一种情况主要是关于如何表示数据模型。一篇文章应该知道它在档案中的项目吗?还是只有档案馆需要了解文章?它们在数据模型中的关系如何?

第二种情况更多的是关于编程的便利性:如果你需要经常访问文章的存档项目,那么使用$article->getArchives()(或其他什么)比通过存储库或查询获取它们更方便。这可能与数据模型相悖,因此您需要权衡这两种情况,并自行决定如何建模以及什么最有意义。

相关内容

  • 没有找到相关文章

最新更新