6 Şubat 2013 Çarşamba

Owning Side/Inverse Side Terimleri Ne Anlama Geliyor

Bugün Doctrine dokümantasyonunu okurken, kafamı karıştıran bir konu oldu. Dokümantasyonda belirtilen "owning side" ifadesi, yani iki nesne arasındaki "sahip" olan taraf, bildiğimin tam tersi bir anlamda kullanılmıştı. Örneğin bir müşterinin siparişlerinden bahsedersek, "Müşteri" değil, "Sipariş" tablosu sahip taraf olarak belirtilmişti. Bu durumu araştırırken, cevabımı stackoverflow'da buldum. Burada bir cevapta anlatıldığı üzere, OO kodlama yaparken düşündüğümüz sahip taraf, yukarıdaki örnekte tabii ki "Müşteri" oluyor. Yani müşteriye ait siparişler olacağından, müşterinin siparişlere "sahip" taraf olduğunu düşünüyoruz. Fakat bu durum, ORM jargonunda tam tersi olarak belirtiliyor. Müşterilerin ve siparişlerin tabloları olduğunu düşünelim. Siparişler tablosundaki her bir sipariş, bir müşteri referansı tutacaktır. Yani siparişler tablosunda, ilgili müşteriye ait bir referans foreign key olarak tutulacaktır. İşte ORM ile ilgili konuşurken, "sahip taraf (owning side)" bu foreign key'e sahip olan taraf olarak kabul ediliyor. Yani OO programlama yaparken düşündüğümüzün tam tersi :) Umarım bu bilgi faydalı olur. İlerleyen zamanlarda nesneler arası bağlantılar (assosication) ve bağlantı yönleri (unidirectional-bidirectional) hakkında da bir yazı hazırlayacağım. Örneğin yukarıda bahsettiğimiz durum Unidirectional ManyToOne bağlantıya bir örnek teşkil ediyor. Tekrar görüşmek üzere. Devamı için : Owning Side/Inverse Side Terimleri Ne Anlama Geliyor

Hiç yorum yok:

Yorum Gönder

Yorumunuzu esirgemeyiniz..