Symfony实体的Doctrine:来自多个数据库表的实体?

时间:2016-09-15 10:44:51

标签: mysql doctrine-orm symfony

我正在构建一个系统,在生产中将具有类似下面的配置文件:

  • mySQL开发数据库(生产数据库可能不同)
  • 20-30表(取决于标准化程度)
  • '主' 4个表有300多万条记录(每个记录包含一个文本字段,填充大约10%的记录,可以有大约4000个字符的评论
  • 大约100个并发用户

为了尝试和优化事物,我认为将这些长文本字段分开存在并将它们放在自己的表中会是一个优势。

  1. 以上是正确的做法吗?
  2. 下面的代码是否将Item实体分成两个正确的处理方式?
  3. 项目实体:

    /**
     * @ORM\Entity
     * @ORM\Table(name="Items")
     */
    class Item
    {
        /**
         * @ORM\Column(type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
    
        /**
         * @ORM\Column(type="string", length=100)
         */
        private $name;
    
        /**
         * @ORM\Column(type="timestamp")
         */
        private $datetime;
    
        /**
         * @OneToOne(targetEntity="Item_comment")
         * @JoinColumn(name="comment_id", referencedColumnName="id")
         */
        private $comment;
    }
    

    项目评论实体:

    /**
     * @ORM\Entity
     * @ORM\Table(name="Item_comments")
     */
    class Item_comment
    {
        /**
         * @ORM\Column(type="integer")
         * @ORM\Id
         * @ORM\GeneratedValue(strategy="AUTO")
         */
        private $id;
    
        /**
         * @ORM\Column(type="text")
         */
        private $comment;
    }
    

0 个答案:

没有答案