मैं डीडीडी (Domain-driven design) फ़ील्ड में अपना पहला कदम आजमा रहा हूं। मुझे बुद्धिमान नियम पसंद है, कि आपको अपनी इकाइयों को कई छोटी, संदर्भ-विशिष्ट इकाइयों में विभाजित करना चाहिए (उदाहरण के लिए User
इकाई लगभग हर गैर-डड या खराब डिज़ाइन किए गए एप्लिकेशन में बढ़ती जा रही है)। लेकिन सिद्धांत का उपयोग करके php में इसे प्रभावी ढंग से कैसे करें (प्रभावी ढंग से) पर सामान्य विकल्प क्या हैं?विभिन्न बाध्य संदर्भों में सिद्धांत इकाई को अधिक डोमेन इकाइयों में विभाजित करने के लिए कैसे?
चलो कहते हैं कि मैं दो घिरा संदर्भों करते हैं: Store
और Invoicing
उनमें से प्रत्येक दो डोमेन इकाइयां हैं: स्टोर ईसा पूर्व यह FirstTimeCustomer
और RecurrentCustomer
है चालान ईसा पूर्व के लिए के लिए यह VatCustomer
और NonVatCustomer
, में है मेरी आधारभूत संरचना परत मैं चाहता हूं कि उन सभी को सामान्य UserId
(यूयूआईडी) द्वारा संदर्भित करने में सक्षम होने के लिए समान (कम से कम आधार) तालिका में सहेजा जाए। मेरे लिए समस्या यह है कि, यह कैसे करें, इसलिए मैं अपने भंडार कार्यान्वयन में सिद्धांत स्वैपिंग का लाभ उठा सकता हूं।
मैं सिंगल टेबल विरासत या Class Table Inheritance कि समाधान हो सकता है के बारे में पढ़ा है, लेकिन:
मैं एक ही UUID की User
के रूप में यह प्रत्येक संदर्भ में विभिन्न प्रकार था के साथ काम करने में सक्षम होना चाहिए।
मुझे स्टोर बीसी में $storeCustomerRepository->find(1);
पर कुछ AbstractStoreCustomer
उर्फ FirstTimeCustomer
या RecurrentCustomer
वापस करने में सक्षम होना चाहिए।
और चालान ईसा पूर्व में $invoicingCustomerRepository->find(1);
पर VatCustomer
या NonVatCustomer
उर्फ कुछ AbstractInvoicingCustomer
वापस जाने के लिए।
लेकिन ऐसा लगता है कि मुझे यह चुनने के लिए मजबूर किया गया है कि बीसी मैं किस इकाई की विशिष्ट पहचान चाहता हूं। तो यह मुझे डीडीडी के संदर्भ में बिल्कुल समझ में नहीं आता है।
मैं भी Mapped Superclasses के बारे में पढ़ा है कि विकल्प की तरह भी दिखता है, लेकिन:
इसका मतलब यह है कि एक-से-अनेक संघों बिल्कुल एक मैप की गई सुपर क्लास पर संभव नहीं हैं।
और मैं Customer
जरूरत आदेश के संबंध, कि दोनों संस्थाओं में उपलब्ध होना चाहिए करने के लिए (एक भी संभवतः नहीं यह उपलब्ध करना चाहते हैं नई ईसा पूर्व में User
इकाई के कुछ नए प्रकार है)।
मैं निष्कर्ष पर आया कि मुझे संदेह होना चाहिए कि मुझे कुछ याद आ रहा है, है ना? मैं छोटे संदर्भ विशिष्टताओं में तोड़ने वाली ईश्वर इकाई को कैसे प्राप्त करूं?
आपके मामले में 'उपयोगकर्ता' क्या है? क्या कोई शरीर प्रमाणित करता है? कुछ उपयोगकर्ता 'ग्राहक' बन जाएंगे? –
हां, उपयोगकर्ता कोई भी है जो प्रमाणित करता है और कोई भी उपयोगकर्ता अन्य बीसी में ग्राहक (विशिष्ट प्रकार का) भी होता है। – Tom