ORM üzerine Dinamik Tablo oluşturma

58 views
Skip to first unread message

Ediz

unread,
Oct 6, 2015, 3:50:27 AM10/6/15
to Symfony 2 Turkish Users
Merhaba Arkadaşlar

Symfony2 ile geliştirdiğim projede her yeni eklenen firma için bir tablo oluşturacağım. Dbal ile  yaptım. Fakat bunu ORM ye dahil etmek için dinamik bir yapı arayışındayım. Örnek vermek gerekirse  

her firma  için address  diye bir tablo dan firma_1_address diye bir tabloya klonlama yapıyorum. Bunu ORM  için  Doctrine YML ve Entity dosyalarını otomatik oluşturmak istiyorum. Bunu yapabiliceğim bir yöntem veya yardımcı olacak bir örnek biliyormusunuz. 

İyi çalışmalar

Osman Üngür

unread,
Oct 6, 2015, 11:54:12 AM10/6/15
to symfon...@googlegroups.com
Selam,

Orm de yeni bir tablo demek sizin yeni bir entity class i yazmanız manasına gelir. Bu noktada tek opsiyonunuz class in php ile otomatik olarak generate edilmesi ile gerçekleşebilir. 

Symfony ve Doctrine in commandline üzerinden kod oluşturan kısımlarını inceleyebilirsiniz.

Kolay gelsin.

Sent from my iPhone
--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.
Daha fazla seçenek için https://groups.google.com/d/optout adresini ziyaret edin.

Sedat KOCADOĞAN

unread,
Oct 7, 2015, 3:09:47 AM10/7/15
to Symfony 2 Turkish Users
Bir fikir olarak söyle yapılabilir belki.. 

Eğer tablonuzun şablonu değişmiyorsa Field'lar vs.. O zaman bir ORM class'ı oluşturun. Ondan sonrada Controller içerisinden o class'ı cagırıp yapabilirsiniz. Örnek olarak..

http://stackoverflow.com/questions/22818286/symfony2-doctrine-entity-how-to-create-table-in-controller


6 Ekim 2015 Salı 10:50:27 UTC+3 tarihinde Ediz yazdı:

Ali Emre Çakmakoğlu

unread,
Oct 7, 2015, 4:15:25 AM10/7/15
to Symfony 2 Turkish Users
Symfony dökümantasyonundan Entity Relationships/Associations kısmında tam olarak aradığınız şeyin nasıl yapıldığına dair örnekler bulabilirsiniz.

Sümeyra Bülbül

unread,
Oct 8, 2015, 2:50:48 AM10/8/15
to symfon...@googlegroups.com
Teşekkürler. Arkadaşlar. 

@Osman Teşekkürler. ilk aklıma gelen default bir  üzerinden entitiy ve yml'i  türetmekti. Fakat müşteri sayısı yüzler ile ifade ediliyor ve her müşteri N sayıda rehber oluşturabilir(Bu kırılım yeni eklendi).  Bu da N sayıda Entity ve YML demek. Bu kadar kalabalıklaştırmak ileride sıkıntı olabilir bu riski almak yerine direk PDO kullanmak daha cazip gibi bilmem katırlırmısınız ?

@Sedat Teşekkürler.   Tam anlayamadım  daha önce Schema Manager  kullanmadım o yüzden aklıma takılan createSchema çalıştığında fiziksel bir dosyamı üretiyor yoksa  kullanılabilir bir obje mi? Bunu test ederek tam algılamam lazım. 

@AliEren Teşekkür ederim 


2015-10-07 11:15 GMT+03:00 Ali Emre Çakmakoğlu <aliemrec...@gmail.com>:
Symfony dökümantasyonundan Entity Relationships/Associations kısmında tam olarak aradığınız şeyin nasıl yapıldığına dair örnekler bulabilirsiniz.

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubunda bir konuya abone olduğunuz için aldınız.
Bu konunun aboneliğinden çıkmak için https://groups.google.com/d/topic/symfony-2-tr/CczPrM_IpWo/unsubscribe adresine gidin.
Bu grubun ve tüm konularının aboneliğinden çıkmak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.

Faruk Temur

unread,
Oct 8, 2015, 2:57:35 AM10/8/15
to symfon...@googlegroups.com
Merhaba,

Bunlar için farklı tablolar üretmek zorunda mısınız?

--

---
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.

Kingem Kurdam

unread,
Oct 8, 2015, 3:21:48 AM10/8/15
to symfon...@googlegroups.com

EAV data model işinizi görecektir.Magento bu data modeli kullanıyor.
Diğer türlü her firmaya tablo olusturmak pek uygulanabilir değil.
Yada database'i nosql çevirip embeded array ile yolunuza devam edebilirsiniz.

8 Eki 2015 09:57 tarihinde "Faruk Temur" <faruk...@gmail.com> yazdı:

Osman Üngür

unread,
Oct 8, 2015, 3:38:09 AM10/8/15
to symfon...@googlegroups.com
Merhaba

Şu noktada dbal kullanmak daha mantıklı bir hareket olur. 

Birbirini tekrar eden veya inherit eden tablolar için Doctrine in şu çözümlerini inceleyebilirsin http://doctrine-orm.readthedocs.org/projects/doctrine-orm/en/latest/reference/inheritance-mapping.html

Tekrarlayan / aynı field isimlerini Mapped superclass yapabilirsin

Ya da 

Class table inheritance ile bir ana tablo üzerinden onu concrete eden tablolara join ederek ilerleyebilirsin.

Bu arada benim tavsiyem entity mapping için sadece annotation kullanmanız.

Sent from my iPhone
Bu iletiyi Google Grupları'ndaki "Symfony 2 Turkish Users" grubuna abone olduğunuz için aldınız.
Bu grubun aboneliğinden çıkmak ve bu gruptan artık e-posta almamak için symfony-2-tr...@googlegroups.com adresine e-posta gönderin.

Sümeyra Bülbül

unread,
Oct 8, 2015, 3:50:12 AM10/8/15
to symfon...@googlegroups.com
 @FAauk Evet maalesef mecburuz milyonlarca kayıt oluşuyor ve aktif olarak bu tablolar kullanılıyor.  

@AbdulkadirNosql'e şuan için pek sıcak bakılmıyor. Neden olarak tabloların çoğunlukla rapor olarak kullanılması ve müşteri taleplerinin enteresan  sql ihtiyaçları doğurması gösteriliyor. Aslında cesaret meselesi ya nosql ile veremezsek sorun yaşarsak ,anlık çözüm üretememe endişesi diyebilirim. 

 EAV modelini inceleyeceğim teşekkürler 

@osman tavsiyeler için teşekkürler inceliyorum



Kingem Kurdam

unread,
Oct 8, 2015, 3:55:01 AM10/8/15
to symfon...@googlegroups.com

Eğer nosql seçerseniz. Raporlama işlemleri için map/reduce yerine Mongodb aggregation kullanabilirsiniz.

8 Eki 2015 10:50 tarihinde "Sümeyra Bülbül" <eszg...@gmail.com> yazdı:

Osman Üngür

unread,
Oct 8, 2015, 6:31:11 AM10/8/15
to symfon...@googlegroups.com
Eğer sakladığınız data varolan bir yapı içerisinden (log, başka bir db vs) tekrar oluşturabileceğiniz bir şekilde ise NoSql kulanmanız mümkün. 

Böylece beklenmedik data kayıplarında datayı kaybetmemiş olursunuz.

Eğer data kritik bir duruma sahipse db de kalması daha mantıklı olur. 

Sent from my iPhone

Sedat KOCADOĞAN

unread,
Oct 9, 2015, 1:59:07 AM10/9/15
to Symfony 2 Turkish Users
SchemaManager Fiziksel olarak db table oluşturur. Aynı konsol komutunda olduğu gibi. Yani önceden bir schema yazacaksın class olarak. Lazım olduğunda schema manager ile bunu db'de fiziksel olarak yarattırıp sonrası entityManager işlemleri,..

8 Ekim 2015 Perşembe 09:50:48 UTC+3 tarihinde Ediz yazdı:
Bu grubun ve tüm konularının aboneliğinden çıkmak için symfony-2-tr+unsubscribe@googlegroups.com adresine e-posta gönderin.

Ahmet Kapıkıran

unread,
Oct 9, 2015, 2:38:28 AM10/9/15
to Symfony 2 Turkish Users
Selamlar,
EAV modeli isinizi gorebilir.
Ayrica karmasik bir yapiniz varsa ve hiz problemi yasarsaniz CQRS pattern'i kullanabilirsiniz. Bu sayede NoSQL'de kullanabilirsiniz.

Sevgiler,

8 Ekim 2015 Perşembe 10:50:12 UTC+3 tarihinde Ediz yazdı:

Ediz

unread,
Oct 9, 2015, 4:36:15 AM10/9/15
to Symfony 2 Turkish Users
Hepinize ayrı ayrı teşekkür ederim. 
Reply all
Reply to author
Forward
0 new messages