Bunun bir yolu, veritabanınızı tasarlamadan önce modellerinizi tasarlamaktır. Modellerinizi tasarlarken odak noktası, sorun etki alanındaki iş mantığını ve anlamlarını yakalamaktır. Bu, yalnızca varlıklar ve veri alanlarından fazlası da dahil olmak üzere, iş açısından anlamlı bir şekilde ele alınmalıdır. Bazı veri öğeleri diğerlerinden yorumlanır, bazıları diğerlerine bağlıdır, vb. Ayrıca, belirli bir öğe belirli bir değere ayarlandığında bir nesnenin dahili olarak nasıl tepki verdiği gibi ihtiyacınız olan herhangi bir temel mantığı eklersiniz.
Muhtemelen, veriyi kalıcı hale getirme şeklinizle% 90 + aynı olan bir şey elde edersiniz. Bu iyi. Eşleştirilmeden tamamen aynı olabilir.
Ayrıca, etki alanının gerçek kalıcı cehalet sisinde modellenmesinin yazılım tasarımı için biraz kutsal bir kâse olduğunu unutmayın. Eğer yapabilirsen, harika. Ancak sorunlu etki alanı hiç önemli değilse ve herhangi bir karmaşıklığı varsa, boyadığınızdan emin olmak için veri kalıcılığını akılcı bir şekilde kontrol etmek için zaman zaman etki alanı modellemesinden çıkmak iyi bir fikirdir. Kendinizi köşeye sıkıştırın.
Sadece çeşitli bileşenlerin gerçek rollerini hatırlayın ve tasarlarken bu rolleri ayrı tutun. Herhangi bir tasarım kararı için, kendinize bu rollerden herhangi birinin ihlal edilip edilmediğini sorun:
- Veritabanı - Verileri saklayın, verilerin bütünlüğünü koruyun, beklemede olan verileri koruyun.
- Modeller - İş mantığını içerir, sorunlu etki alanını modellenir, verileri hareket halinde tutar, iş düzeyinde olaylara yanıt verir, vb.
- Görünümler - Verileri kullanıcılara sunun, kullanıcı tarafı mantığı gerçekleştirin (modellerde gerçek doğrulama yapılmadan önce temel doğrulama vb.).
- Kontrolörler - Kullanıcı olaylarına yanıt verin, kontrolü modellere, rota isteklerine ve dönüş yanıtlarına geçirin.