如何设计教义2个实体



我有两个mySQL表(newsnews_lng(。新闻表content idfrom_dateto_dateleading_image字段。news_lng表包含idnews_idlngtitlebody字段。

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。

/**
 * @ORMEntity(repositoryClass="AdminRepositoryNewsRepository")
 * @ORMTable(name="news")
 */
class News {
    /**
     * @ORMId
     * @ORMGeneratedValue
     * @ORMColumn(name="id")
     */
    protected $id;
    /**
     * @ORMColumn(name="from_date")
     */
    protected $fromDate;
    /**
     * @ORMColumn(name="to_date")
     */
    protected $toDate;
    /**
     * @ORMColumn(name="leading_image")
     */
    protected $leadingImage;
    /**
     * @ORMOneToMany(targetEntity="AdminEntityNewsLng", fetch="EAGER", mappedBy="news_id")
     */
    private $translations;
    public function __construct() {
        $this->translations = new ArrayCollection();
    }
    // getters and setters ...//
}
/**
 * @ORMEntity
 * @ORMTable(name="news_lng")
 */
class NewsLng {
    /**
     * @ORMId
     * @ORMGeneratedValue
     * @ORMColumn(name="id")
     */
    protected $id;
    /**
     * @ORMManyToOne(targetEntity="AdminEntityNews", inversedBy="translations", fetch="EAGER")
     * @ORMJoinColumn(name="news_id", referencedColumnName="id")
     */
    protected $news_id;
    /**
     * @ORMColumn(name="lng")
     */
    protected $lng;
    /**
     * @ORMColumn(name="title")
     */
    protected $tile;
    /**
     * @ORMColumn(name="body")
     */
    protected $body;
    // getters and setters ...//
}
  1. 我必须使用学说2 class表继承?

学说2中的最佳实践是什么?

在您的情况下,使用关系是适当的解决方案。表继承是为其他东西设计的。

相关内容

  • 没有找到相关文章