0

我有两个数据库表

  1. 文章
  2. 档案

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

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

/**
 * Archive
 *
 * @ORM\Table(name="archive")
 * @ORM\Entity
 */
class Archive
{

   .....................................................

   /**
     * @var Articles
     *
     * @ORM\ManyToOne(targetEntity="Articles")
     * @ORM\JoinColumns({
     *   @ORM\JoinColumn(name="article_id", referencedColumnName="id")
     * })
     */
     private $article;

   .....................................................

   /**
     * Set article
     *
     * @param Articles $article
     * @return Archive
     */
    public function setArticle(\Entities\Articles $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-relationships-as-much-as-possible)。那么我可以告诉我是否需要它的那个点在哪里?

4

1 回答 1

1

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

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

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

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

于 2012-09-12T11:12:51.033 回答