2008-09-24 18 views
5

Yüksek seviyeli bir dilde (Python, Ruby gibi) tasarlanmış projeksiyonum için elle yazılmış bir şema kullanmalı mıyım yoksa ORM çözümümün otomatik olarak oluşturmasına izin vermeli miyim? Sonuç olarak, tüm verileri yok etmeden geçiş yapmam gerekecek. Belirli bir RDBMS'ye bağlı olmak iyi bir şeydir, ancak kısıtlamalar ve prosedürler gibi özellikler bir şekilde desteklenebilirse iyi olur.ORM: El ile yazılmış şema veya otomatik olarak oluşturulmuş mu?

cevap

3

ORM tarafından oluşturulan şema ile hiçbir zaman gitmem.

ORM'nin şemayı oluşturmak istediği yöntemlerin, veritabanımın nasıl yapılandırılmasını istediğim ile genellikle toplam oranlarda olduğunu buluyorum. Ayrıca, bunun önemsiz olduğunu biliyorum, isimlendirme programı genellikle zayıf.

Veritabanı yapısının kendi kısıtlamaları vardır, genellikle ORM otomatik üretim araçlarının tam olarak düşünmediğini fark ettim. Ve daha sonra veritabanınızda raporları çalıştırmak isteyecekseniz (ve yapacaksınız), o zaman iyi bir veritabanı yapısına ve tasarıma sahip olmak çok önemlidir.

1

ORM'nin istediği şemayı oluşturmasına izin verin. Sonra her zaman çok yavaş olan veya farklı bir şekilde istediğiniz şeyleri değiştirebilirsiniz. Ancak, hızlı bir şekilde başlamanıza ve çalışacak bir şey yapmanıza izin verir, artı ORM insanları genellikle şema oluşturma konusunda ne yaptıklarını bilirler.

+0

Bunun iyi bir başlangıç ​​olduğunu düşünüyorum, ancak genellikle db performans nedenleriyle kendimi üretmeyi ve yönetmeyi bırakmam gerekti. –

2

this Coding Horror article konusuna bakın ve sonunda yapmanız gereken bu geçişle ilgili tartışmalara bağlantılar. Şimdi bunun için plan yapın.

Ayrıca bkz. Martin Fowler on database evolution; Özellikle test veri üretiminin veritabanı kurulumunun bir parçası olduğu fikrini tavsiye ederim. Bu fikir biraz gelişmemiş olabilir, çünkü farklı ortamlardaki farklı sorunların açık bir şekilde belirlenmesi, üretimden QA'ya karşı geliştirme.

0

ORM çözümünüzün bunu üretmesine izin verin, ancak yalnızca körü körüne kullanmayın; Bunu oku ve akıl-kontrol et.

İlgili konular