我正在創建一個包含多個頁面和多個圖像的網站。關係是許多頁面可以有很多圖像。因此,我通常會創建一個名爲page_images的連接表,其中包含page_id和image_id。我還需要連接表中的位置字段,以便可以對每個頁面的圖像進行排序。一對多或多對多?
我一直在看今天的學說和使用Symfony2實體來創建數據庫。我嘗試使用元數據使用多對多關係,但是這爲我創建了僅包含page_id和image_id的連接表。我不知道如何添加位置字段或其他字段,這是可能的嗎?
我假設的替代方法是創建一個從頁表到page_images表以及從images表到page_images表的一對多關係,這意味着我還需要一個PageImage實體類。
有人可以請告知什麼是這種情況下的最佳做法?我一直在尋找http://docs.doctrine-project.org/en/latest/reference/working-with-associations.html,但是文檔沒有提及您是否可以將其他字段添加到連接表中。
更多信息:
class Image {
/**
*
* @ORM\OneToMany(targetEntity="PageImage", mappedBy="image")
*/
private $page_images;
}
class Page {
/**
*
* @ORM\OneToMany(targetEntity="PageImage", mappedBy="page")
*/
private $page_images;
}
class PageImage {
/**
* @var integer
*
* @ORM\ManyToOne(targetEntity="Page", inversedBy="page_images")
* @ORM\JoinColumn(name="page_id", referencedColumnName="id")
*/
private $page;
}
好吧,那麼這是正確的方式是嗎?我正在努力學習Symfony和Doctrine,並希望確保我以正確的方式進行,而不是簡單的方法。是不是真的,如果你做了很多,你不能添加額外的字段到連接表? – user1961082
是的。要添加額外的字段,您正在以正確的方式進行。 –
謝謝你的幫助哥們! – user1961082