2015-10-19 63 views
1

我想在兩個表添加一個一對多的雙向關聯:課程認證學說更新不會做任何事情

已經有一個一對多的關係,但單向的。

所以我修改了兩個實體,使其雙向和增加對當然側財產

這裏有兩個實體:

/** 
* Course 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="ME\ExamsBundle\Entity\CourseRepository") 
*/ 
class Course  
{ 
/** 
    * @ORM\OneToMany(targetEntity="ME\ExamsBundle\Entity\Certified", mappedBy="course") 
    * @ORM\JoinColumn(nullable=true) 
    */ 
private $certified; 

//getters and setters... 

} 

/** 
* Certified 
* 
* @ORM\Table() 
* @ORM\Entity(repositoryClass="ME\ExamsBundle\Entity\CertifiedRepository") 
*/ 
class Certified 
{ 
/** 
* @ORM\ManyToOne(targetEntity="ME\ExamsBundle\Entity\Course", inversedBy="certified") 
* @ORM\JoinColumn(nullable=false) 
*/ 
private $course; 

// getters and setters... 

} 

但是當我使用命令

doctrine:schema:update -- dump-sql 

它告訴我沒有什麼可更新的。

我試圖

  • 明確的元數據CACH

  • 除去兩側可空

  • 刪除數據庫並重新創建它

但物業認證從未出現在數據庫中的課程表中。

我有點卡在這裏,所以任何幫助將不勝感激。

在此先感謝

湯姆

+0

嘗試'學說:架構:更新--force' –

+0

它不工作,要麼 –

回答

1

教義的雙向關係是從SQL點的視圖單方向一個沒有什麼不同:那是因爲教義可以推斷出反比關係逆轉來自其他表的外鍵。將一個新的Colum添加到課程表中將是一種不規範化的形式,或者更糟糕的是它沒有任何意義。

該教義的命令的反應是好的。

請多學習一些關於標準化形式的數據庫:https://en.wikipedia.org/wiki/Database_normalization

+0

所以這是正常的,這種理論並不表添加任何東西,並且當我嘗試訪問經過認證的屬性與吸氣劑的過程中,學說將使用外鍵獲得認證表中相應的所有認證對象。我對麼 ? –

+0

是的,你是對的 – Jean