Önce varlık-ilişki modellemesi mi yoksa nesne yönelimli modelleme mi yapmalıyız?


Yanıtlar:


13

Mimari kararları olabildiğince geciktirme ilkesine uymaya çalışabilirsiniz. Gelecekte sorun alanınız hakkında şu anda olduğundan daha fazla bilgi sahibi olacağınız düşüncesi devam ediyor - bu nedenle bugün verdiğiniz kararlar şüphelidir.

Bunu eşleştirmek için bir başka iyi ilke, önce gereksinimlerinizin en riskli kısımlarını denemeye çalışmak olabilir - düşünce, kolay parçaları yaparsanız, riskli parçaların sizi farklı bir yöne hareket ettirdiğini bulmaktır. kolay parçaları yeniden yapmak. Burada riskli, onları nasıl yapmanız gerektiğinden emin olmadığınız şeyler anlamına gelir.

Bu ikisi göz önüne alındığında ve çoğu zaman bir OO perspektifinden yaklaşmaya çalıştığım göz önüne alındığında, önce uygulamanızın en riskli kısımlarının bir OO modeliyle başlamayı deneyebilir ve en iyi şekilde çalışabilecek en az miktarda kodu uygulayabilirsiniz. riskli gereksinimler. Ardından, ihtiyacınız olacak işlevselliği eklemek için OO modelinizi gerektiği gibi genişletmeye başlayın. Tüm bu süre boyunca, SQL veya NoSQL veya flatfiles veya bulut depolama veya herhangi bir şey kullanma konusundaki kararınızı tamamen geciktirebilirsiniz ... ve sonunda ilişkisel olmak istemediğinizi (ER modeline olan ihtiyacı ortadan kaldırarak) bulabilirsiniz.


7

ER modeli, uygulama verilerinin nasıl kalıcı olacağını belirler ve OO modeli, aynı verilerin bellekte veya uygulama çalışırken nasıl saklanacağına karar verir. Bu nedenle, Veritabanı şeması tasarımı (ER modeli) ve sınıf yapısı tasarımı (OO modeli) ilgili tasarım konularıdır ve genellikle aynı anda düşünülebilir. Aslında, bir Nesne ilişkisel eşleme (ORM) aracı kullanıyorsanız, ER modeliniz ve OO modeliniz bir ve aynı olabilir. Başka bir deyişle, sınıflarınız (OO modeli) kendileri ER modelini belirleyecek şekilde açıklanabilir.

Yine de tasarlamadan önce, yazılımın gerçek gereksinimleri, ne için kullanılacağı, nasıl kullanılacağı ve kimlerin kullanılacağı hakkında çok iyi bir fikriniz olduğundan emin olun. Birçok geliştirici, ürün tarafından ele alınması gereken ihtiyaçları tam olarak anlamadan önce tasarım kararlarını düşünmeye başlar ve uygulamanın gerçek amacına uygun olmayan bir tasarımla sonuçlanır.


2 modelleme arasındaki farkı belirlemek için +1. İki modeli aynı anda düşünebileceğinizi tam olarak kabul etmiyorum. Ayrıca, bazı OO hayranları, OO ve ER Modellerinizin her zaman aynı olmaması gerektiğini düşünür. Ancak, veritabanı tasarımının temeli olarak bir OO modeli kullanılabilir, ancak bu dönüşüm biraz zordur.
NoChance

@EmmadKareem Haklısınız, iki modeli aynı anda düşünmek her zaman uygun değildir. Bir ORM kullanma ve sınıflara açıklama ekleme fikrinden bahsettim, böylece ER model tasarımı OO modeline entegre edildi. Bazı insanlar bu şekilde uygulamalar geliştirmeyi tercih ederler, bu da hem OO hem de ER'yi aynı anda uygular.
CFL_Jeff

Bir veri modeli için etki alanı modelinizi yanlışlamayın - Bir nesneyi (tek bir örneği temsil eder) veritabanı tablosuyla (bir şeyler koleksiyonu içerir) karıştırmayın
Narender Parmar
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.