में शामिल हो रहा है, मैं अपने आवेदन की मॉडल परत के लिए प्रोग्रामिंग/डिज़ाइन पैटर्न देख रहा हूं, और यह सोच रहा हूं कि आप किस स्थिति में पुनर्प्राप्ति कर रहे हैं जिसमें कई तालिकाओं में शामिल होना शामिल है।डेटाबेस तालिका के लिए सर्वश्रेष्ठ डिज़ाइन पैटर्न
उदाहरण के लिए, मान लीजिए आप निम्न तालिकाओं/संबंध: ग्राहक -> 1..n लेखा -> 0..n सुविधाएँ
जहां एक फ़ीचर चेक बुक किया जा सकता है, या कुछ प्रीमियम उत्पाद मुफ्त यात्रा बीमा की तरह।
फिर मैं उन ग्राहकों के साथ सभी ग्राहकों को पुनर्प्राप्त करने के लिए क्लाइंटर्सफॉरफ़ेचर() प्राप्त करना चाहता हूं, जिनमें निःशुल्क यात्रा बीमा है।
ActiveRecord या डेटा एक्सेस ऑब्जेक्ट का उपयोग करने के लिए उपयुक्त नहीं लगता है, क्योंकि ये आम तौर पर प्रति वर्ग एक वर्ग पर ध्यान केंद्रित करते हैं; इसी प्रकार डेटा मैपर के लिए। मुझे एहसास है कि मैं इसे प्रत्येक तालिका के लिए संचालन में तोड़ सकता हूं, उदा। GetAccountsForFeature() और getCustomersForAccount() प्राप्त करें, लेकिन मैं एक हिट में पुनर्प्राप्ति करना चाहता हूं।
यदि हम एक-वर्ग-प्रति-तालिका पैटर्न को "झुकाव" करना चाहते हैं और डेटा एक्सेस ऑब्जेक्ट पैटर्न का उपयोग करना चाहते हैं, तो कहें, क्या ग्राहक कस्टमर्सफोरफ़ेचर() विधि ग्राहकदाओ या फ़ीचरडीओ पर जाना चाहिए? लेकिन यह मेरे लिए सही नहीं लगता है क्योंकि आप अन्य डीएओ के ज्ञान के साथ अपने डीएओ को प्रदूषित करेंगे।
सुझाव कृपया।
मैंने इस प्रश्न के लिए एक समुदाय विकी उत्तर जोड़ा है, जो मुझे बताता है कि यहां क्या जवाब है और यहां अतिरिक्त उत्तरों के आधार पर उपलब्ध दृष्टिकोण हैं। यह यहां अन्य उत्तरों से बिल्कुल अलग नहीं होता है, लेकिन यह पैटर्न-उन्मुख दृष्टिकोण है जिसे मैं ढूंढ रहा था, कुल विचार शामिल था। मैं इसे "स्वीकृत उत्तर" के रूप में चुनने में संकोच करता हूं (क्या मैं इसे अपने उत्तर में कर सकता हूं?) जब तक कि यह अधिक जांच के अधीन न हो। –