2010-08-27 19 views
9

Oracle ve MS SQL Server gibi çoklu veritabanı yönetim sistemi ile uyumlu olması gereken bir web uygulamasının geliştirilmesini nasıl tasarlıyor ve yönetiyorsunuz?Çoklu veritabanı yönetim sistemleriyle uyumlu bir web uygulaması nasıl geliştirilir

ORM benzeri NHibernate veya EF'yi kullanamıyorsanız, geliştirme sırasında veritabanı şemalarını nasıl tutuyorsunuz?

Şimdiki yaklaşımım, SQL Server'da bir geliştirme veritabanına sahip olmak ve yazılımları her iki rdbms'de sınamak için bir test düzeltme eki göndermeden önce Oracle'a (bir araçla) taşımaktır. (Araç ayrıca, veritabanını yükseltmek için uygulama tarafından kullanılan bir dosya oluşturur)

Bu iyi bir yaklaşım mı? Visual Studio'nun bir veritabanı projesi, db şemamı tutmak için daha iyi bir yol olabilir mi?

DÜZENLEME: Bu soru uygulamasının mimarisini tasarlama hakkında değil olduğunu (Zaten soyut bir veri erişim katmanı), ama nasıl gelişimi sırasında rdbms farklı türde veritabanı şemaları sürdürmek.

cevap

5

Modele dayalı mimari (MDA): veritabanı şemasını tasarlamak için genel bir Database modelling tool kullanın. Tabloları/ilişkileri/birincil anahtarları/vb. Genel bir şekilde ve sonra tasarımcının gerekli SQL betiğini oluşturmasını sağlayın (birçok veritabanına destek desteği). DB modelini değiştirdiğinizde, araç veritabanını güncelleştirmek veya sıfırdan oluşturmak için gerekli SQL kodunu üretecektir. Araçlar ayrıca dokümantasyon oluşturmada ve diğer birçok şeyin yanı sıra veritabanı sürümleri oluşturulmasında da yardımcı olurlar ...

Context Database Designer kullanıyorum ve araç ve fiyattan son derece mutluyum. Enterprise Architect aynı zamanda yetenek üretebilen ve tersine mühendislik koduna sahip mükemmel bir araç gibi görünüyor.

+0

+1 Cevabınız ve çok faydalı linkler için teşekkür ederiz – onof

2

Gerçekçi olarak bunun üstesinden gelmenin tek yolu, veritabanı erişiminizi çekirdek uygulamanızdan ayırmaktır, böylece her bir veritabanı için erişim kodunu özelleştirebilirsiniz. Başka bir deyişle, Nhibernate ve EF'in tam olarak ne yaptığı. Bu araçlardan birini kullanamıyorsanız, yine de etkili olacaksınız, herhangi bir şekilde yazmayı bitirebilirsiniz. Hangi eğlenceli ve ilginç olabilir, ama aynı zamanda büyük bir zaman alacaktır. O zaman neden bir ORM kullanamadığın hakkında bazı ciddi sorular soruyordum.

+0

Soruma soru C# kodunun geliştirilmesi hakkında değil, farklı türde rdbms veritabanı şemasının bakımı nasıl yapılır – onof

7

Bunun anahtarının, standart SQL sözdizimine karşılandığından emin olmanız gerekir. MS SQL Server, ISO standard SQL süper kümesi olan Transact SQL (T-SQL) ile birlikte gelir; bu, standart SQL'in resmi bir parçası olmayan ekstra sözdizimine sahip olduğu anlamına gelir.

SQLZoo, farklı veritabanlarının sözdizimi desteğini karşılaştırmanıza olanak veren iyi bir sitedir. Günden güne kullandığınız sözdiziminin çoğunun çoğu DB arasında aynı olacağını, ancak orada birkaç tuhaflık olduğunu göreceksiniz. Bunları bulmanın en iyi yolu, her bir ortamdaki her sorgunuzu kontrol etmektir ve daha sonra bunları kaynak kontrolüne göre kontrol etmektir.

Bir veritabanı projesi kullanma fikriniz iyi bir tanesidir. Değişikliklerinizi birden çok veritabanına hızlı bir şekilde dağıtmanıza ve otomatik olarak test etmenize olanak tanır.