Dubluve.net » oo http://www.dubluve.net Biz de yazılımcıyız Wed, 13 Aug 2014 21:06:10 +0000 tr-TR hourly 1 http://wordpress.org/?v=3.9.1 Owning Side/Inverse Side Terimleri Ne Anlama Geliyor http://www.dubluve.net/2013/02/06/owning-sideinverse-side-terimleri-ne-anlama-geliyor/ http://www.dubluve.net/2013/02/06/owning-sideinverse-side-terimleri-ne-anlama-geliyor/#comments Wed, 06 Feb 2013 15:58:03 +0000 http://dubluve.net/?p=2444 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.

]]>
http://www.dubluve.net/2013/02/06/owning-sideinverse-side-terimleri-ne-anlama-geliyor/feed/ 4