2017-05-04 47 views
1

我有兩個MySQL表(newsnews_lng)。新聞表content idfrom_date,to_dateleading_image字段。 news_lng表格包含id,news_id,lng,titlebody字段。如何設計Doctrine 2實體

news 
id | from_date | to_date | leading_image 
1 | 2017-05-01 | 0000-00-00 | test.jpg 

news_lng 
id | news_id | lng | title | body 
1 | 1  | en_GB | test | test body 
2 | 1  | en_US | test | test content 

如何設計學說2實體?

1.

/** 
* @ORM\Entity(repositoryClass="\Admin\Repository\NewsRepository") 
* @ORM\Table(name="news") 
*/ 
class News { 
    /** 
    * @ORM\Id 
    * @ORM\GeneratedValue 
    * @ORM\Column(name="id") 
    */ 
    protected $id; 
    /** 
    * @ORM\Column(name="from_date") 
    */ 
    protected $fromDate; 
    /** 
    * @ORM\Column(name="to_date") 
    */ 
    protected $toDate; 
    /** 
    * @ORM\Column(name="leading_image") 
    */ 
    protected $leadingImage; 
    /** 
    * @ORM\OneToMany(targetEntity="\Admin\Entity\NewsLng", fetch="EAGER", mappedBy="news_id") 
    */ 
    private $translations; 
    public function __construct() { 
     $this->translations = new ArrayCollection(); 
    } 

    // getters and setters ...// 
} 

/** 
* @ORM\Entity 
* @ORM\Table(name="news_lng") 
*/ 
class NewsLng { 
    /** 
    * @ORM\Id 
    * @ORM\GeneratedValue 
    * @ORM\Column(name="id") 
    */ 
    protected $id; 
    /** 
    * @ORM\ManyToOne(targetEntity="\Admin\Entity\News", inversedBy="translations", fetch="EAGER") 
    * @ORM\JoinColumn(name="news_id", referencedColumnName="id") 
    */ 
    protected $news_id; 
    /** 
    * @ORM\Column(name="lng") 
    */ 
    protected $lng; 
    /** 
    * @ORM\Column(name="title") 
    */ 
    protected $tile; 

    /** 
    * @ORM\Column(name="body") 
    */ 
    protected $body; 

    // getters and setters ...// 
} 
  • 或者我必須使用教義2級表繼承?
  • 教義2中的最佳實踐是什麼?

    回答

    0

    在你的情況下使用關係是適當的解決方案。表繼承是爲別的東西而設計的。