2013-09-06 27 views
16

Doctrine 2'de ek sütunlar veya ek özelliklerle çoktan çoğa ilişkisi olan birleştirme tablosunu nasıl ayarlayabilirim?Doctrine 2: Ek sütunlarla birleştirme tabloları nasıl işlenir

+0

@ThatBlairGuy Sana [extra etiketi] bir sürü kaldırıyorsunuz ettim. Bu düzenleme yeterliydi, ancak etiketi kaldırmaya ek olarak lütfen bir gönderinin tüm yönlerini düzeltmeyi unutmayın. Daha fazla bilgi için, bu [meta tartışmayı] okuyun (https://meta.stackoverflow.com/questions/314488/how-to-deal-with-serial-tag-only-edits-from-sub-2k-users) – ryanyuyu

cevap

50

Öncelikle, beni bu değil var olduğu açıklayalım:

bir tablo (aynı zamanda bağlantı tablosu olarak veya çapraz referans tablosu bilinir) birleştirme 2 bağlayan bir tablodur (veya daha fazla) diğer veritabanında birincil anahtarla aynı veritabanında birlikte. Bu, bir birleşim tablosunun yalnızca yabancı anahtarları içereceği anlamına gelir, bu ekstra sütunlar için yer yoktur.

Böylesi bir tabloda fazladan sütunlara ihtiyaç duyduğunuzda, artık diğer tablolar arasında bir "bağlantı" değil, ancak kendi başına bir gerçek tablo olur!

Doktrin 2 açısından, artık 2 varlık arasında çoktan çoğa ilişkisi yok, ancak 3 varlık arasında bire-çok/çoktan bir ilişki var.

daha fazla detay açıklamalar için buraya Okumaya devam:

+0

Bunlar Linkler bozuk, kimse bunları güncelleyebilir mi? –

+2

Bağlantılar güncellendi! (Biçimlendirme biraz kapalı olabilir, en kısa zamanda düzeltilecektir) –

+0

Bağlantıları güncellemek için teşekkürler! –

1

, ben küçük bir güncelleştirme düşündürmektedir. Yerine tam olayın, varlık kendi içinde bir LifecycleCallback kullanın: etiketi:

/** 
* @ORM\Entity 
* @ORM\Table(name="jobs”) 
* @ORM\HasLifecycleCallbacks 
*/ 
class Job 
{ 
    // ... 

    /** 
    * @ORM\PreRemove 
    */ 
    public function preRemoveCallback() 
    { 
     $this->setPerson(null); 
     $this->setCompany(null); 
    } 
} 
İlgili konular