आप एक ऐसी प्रणाली बना रहे हैं, जो कंपनियों पर नज़र रखती है। उन कंपनियों के संपर्क हैं। वे संपर्क अक्सर विशेषज्ञ होते हैं जो केवल कुछ प्रकार के प्रश्नों का उत्तर देते हैं, जैसे बिलिंग / भुगतान, बिक्री, ऑर्डरिंग और ग्राहक सहायता।
डोमेन संचालित डिज़ाइन और एक प्याज वास्तुकला का उपयोग करते हुए, मैंने इसे निम्न प्रकारों से तैयार किया है:
- कंपनी
- संपर्क है
- संपर्क करें
- संपर्क प्रकार हैं
- ContactType (एनम)
- CompanyRepository (इंटरफ़ेस)
- EFCompanyRepository (बाहरी विधानसभा में परिभाषित, EntityFramework, कार्यान्वयन CompanyRepository) का उपयोग करता है
हमारी टीम के पास इस एप्लिकेशन के लिए डेटाबेस को मॉडल करने के बारे में एक अलग राय है।
साइड ए: लीन डीडीर्स:
- डोमेन का काम यह परिभाषित करना है कि कौन से कॉन्टैक्टटेप्स एक संपर्क के लिए मान्य हैं। डेटाबेस में एक तालिका जोड़ने के लिए यह सत्यापित करने के लिए कि अज्ञात संपर्कटेप्स सहेजे नहीं गए हैं, एक टपका हुआ डोमेन का संकेत है। यह तर्क को बहुत दूर तक फैलाता है।
- डेटाबेस और संबंधित कोड के लिए एक स्थिर तालिका जोड़ना व्यर्थ है। इस एप्लिकेशन में डेटाबेस एक समस्या को हल करता है: बात को बनाए रखें और इसे मुझे वापस दें। एक अतिरिक्त तालिका और इसी CRUD कोड लिखना व्यर्थ है।
- दृढ़ता के लिए रणनीति बदलना जितना संभव हो उतना आसान होना चाहिए। यह उस व्यापार नियमों को बदलने की अधिक संभावना है। अगर मैं तय करता हूं कि SQL सर्वर की लागत बहुत ज्यादा है, तो मुझे अपने स्कीमा में लगाए गए सभी सत्यापन का पुनर्निर्माण नहीं करना होगा।
साइड बी: द ट्रेडिशनलिस्ट [कि शायद एक उचित नाम नहीं है। DBCentrists?]:
- डेटाबेस में डेटा रखना एक बुरा विचार है जो बिना कोड को पढ़े समझ में नहीं आता है। रिपोर्ट और अन्य उपभोक्ताओं को स्वयं मूल्यों की सूची दोहरानी होगी।
- यह मांग पर अपने डीबी टाइप शब्दकोशों को लोड करने के लिए इतना कोड नहीं है। इसके बारे में चिंता मत करो।
- यदि इसका स्रोत कोड है और डेटा नहीं है तो मुझे एक साधारण SQL स्क्रिप्ट के बजाय बिट्स को तैनात करना होगा जब यह बदलता है।
न तो पक्ष सही है या गलत है, लेकिन उनमें से एक संभवतः लंबे समय में अधिक कुशल है, प्रारंभिक विकास, कीड़े, आदि के लिए विकास के समय की गिनती कर रहा है कि यह कौन सा पक्ष है - या क्या एक बेहतर समझौता है? कोड की इस शैली को लिखने वाली अन्य टीमें क्या करती हैं?