मैं डीडीडी के साथ शुरुआत कर रहा हूं और समझता हूं कि कुल मिलाकर जड़ों का उपयोग ट्रांसनैशनल स्थिरता सुनिश्चित करने के लिए किया जाता है। हमें एक अनुप्रयोग सेवा में कई समुच्चय को संशोधित नहीं करना चाहिए।
मैं यह जानना चाहूंगा कि निम्नलिखित स्थिति से कैसे निपटा जाए।
मेरे पास उत्पाद नामक एक मूल जड़ है।
समूह नामक एक मूल जड़ भी है।
दोनों में आईडी है, और इसे स्वतंत्र रूप से संपादित किया जा सकता है।
एकाधिक उत्पाद एक ही समूह को इंगित कर सकते हैं।
मेरे पास एक एप्लिकेशन सेवा है जो किसी उत्पाद के समूह को बदल सकती है:
ProductService.ChangeProductGroup(string productId, string groupId)
- चेक समूह मौजूद है
- रिपॉजिटरी से उत्पाद प्राप्त करें
- इसका समूह निर्धारित करें
- उत्पाद को रिपॉजिटरी में वापस लिखें
मेरे पास एक एप्लिकेशन सेवा भी है जहां समूह को हटाया जा सकता है:
GroupService.DeleteGroup(string groupId)
1. उन रिपॉजिटरी से उत्पाद प्राप्त करें जिनके ग्रुपआईडी को ग्रुपआईडी के लिए सेट किया गया है, यह सुनिश्चित करें कि गिनती 0 या गर्भपात है। ग्रुप रिपॉजिटरी से ग्रुप हटाएं 3. परिवर्तन सहेजें
मेरा प्रश्न निम्नलिखित परिदृश्य है, अगर क्या होगा:
ProductService.ChangeProductGroup में, हम जाँचते हैं कि समूह मौजूद है (यह करता है), इसके ठीक बाद एक अलग उपयोगकर्ता चेकग्रुप को हटाता है (अन्य GroupService.DeleteGroup के माध्यम से)। इस मामले में हम एक उत्पाद के लिए एक संदर्भ सेट करते हैं जिसे अभी हटा दिया गया है?
क्या मेरे डिजाइन में यह दोष है कि मुझे एक अलग डोमेन डिजाइन का उपयोग करना चाहिए (यदि आवश्यक हो तो अतिरिक्त तत्व जोड़ना), या क्या मुझे लेनदेन का उपयोग करना होगा?