हमारे पास एक वेब एप्लिकेशन है जिसमें यूआई के साथ 3 स्तरित बैक एंड (कंट्रोलर/बिज़/डेटा) शामिल है। डाटाबेस इंस्टेंस (एसक्यूएल) से डेटा खींचने के लिए हमारी डेटा लेयर पूरी तरह जिम्मेदार है, व्यवसाय परत डेटा को संदेश देती है और व्युत्पन्न गुण बनाता है, नियंत्रक यूआई में उन परिवर्तनों को भेजने के लिए ज़िम्मेदार है।एसक्यूएल निर्भरता और सिग्नलआर 3 टायर आर्किटेक्चर में
हमारे पास हमारे एप्लिकेशन में रीयल-टाइम अपडेट होने की आवश्यकता है जिसे डेटाबेस स्तर (नियंत्रक स्तर पर नहीं) पर ट्रैक किया जाना चाहिए।
हमने एसक्यूएल निर्भरता और सिग्नलआर का उपयोग हमारे समाधान के रूप में करने का विकल्प चुना है।
सिग्नलआर और एसक्यूएल निर्भरता के बारे में मैंने जो भी शोध किया है, वह डेटाबेस स्तर पर है, जहां एसक्यूएल निर्भरता डेटा परत के भीतर परिवर्तन और प्रसारण की पहचान करेगी। स्पष्ट कारणों से यह पद्धति व्यावसायिक परत में बनाए गए व्युत्पन्न गुणों को बाईपास करेगी और हमें एक अलग दिखने वाली वस्तु देगी।
एकमात्र समाधान जो मैं सोच सकता हूं, परिवर्तनों को ट्रैक करने के लिए एसक्यूएल निर्भरता का उपयोग करना है, उन्हें कुछ तालिका/ऑब्जेक्ट में डंप करना है, फिर नियंत्रक से, बिज़ परत तक, डेटा परत तक लाने के लिए मतदान का उपयोग करना, और बैक अप
- प्रश्न # 1: क्या कोई बेहतर समाधान है?
- प्रश्न # 2: व्यापार परत तर्क शामिल करने का सबसे अच्छा समाधान क्या है, लेकिन फिर भी डेटा परत में परिवर्तनों को ट्रैक करने में सक्षम हो?
- प्रश्न # 3: क्या यह मतदान के बिना संभव है?
यह मेरी समस्या का समाधान नहीं करता है क्योंकि इस प्रकार का कोड/तर्क व्यावसायिक स्तर पर नहीं होना चाहिए। व्यापार स्तर को स्कीमा से जुड़े किसी भी चीज़ से अवगत नहीं होना चाहिए और केवल डीटीओ पर काम करना चाहिए। – mtsuggs
किस अंत तक? तो आप वापस बैठ सकते हैं और प्रशंसा कर सकते हैं कि आपने समाधान की कीमत पर 3 स्तरीय अवधारणा को बनाए रखा है? हम समस्याओं को हल करने के लिए इन उपकरणों का उपयोग करते हैं। डिजाइन की पैटर्न के नवीनतम विचार को फिट करने के लिए हर समस्या नहीं है, हम सभी को इस दशक को पसंद है। आपके पास समाधान है, इसलिए आप अपने कंट्रोलर और बिजनेस लेयर को थोड़ा सा धुंधला करते हैं। बड़ी बात। केवल प्रत्यक्ष डेटा पहुंच से दृश्य या अंतिम उपयोगकर्ता को रखें और आप अभी भी सुनहरे हैं। – Jason