2008-09-25 13 views
5

मुझे एक ऐसी परियोजना मिली है जो डीबी परत के लिए एलएलबीएलजेन प्रो का उपयोग करती है। डीबी मॉडल की आवश्यकता है कि जब एक प्रविष्टि हटा दी जाती है तो ध्वज (हटाया गया दिनांक वर्तमान समय पर सेट होता है)। आखिरी प्रोग्रामर ने इस आवश्यकता को नजरअंदाज कर दिया और पूरे एप्लिकेशन में नियमित रूप से हटा दिया।एलएलबीएलजेन: मैं एक प्रविष्टि को नरम कैसे कर सकता हूं

क्या कोड जनरेटर को स्वचालित रूप से ऐसा करने के लिए सेट करने का कोई तरीका है या क्या मुझे उन इकाइयों के लिए प्रत्येक डिलीट ऑपरेटर को अधिभारित करना होगा, जिसके लिए इसकी आवश्यकता है?

उत्तर

4

मैंने इसे किसी भी सॉफ्ट डिलीट टेबल के लिए हटाए जाने पर ट्रिगर्स के इंस्टॉलेशन का उपयोग करके SQL सर्वर 2005 में कार्यान्वित किया। ट्रिगर ने डिलीट फ्लैग सेट किया और क्लीन-अप किया। इस समाधान की सुंदरता यह है कि यह किसी भी सिस्टम द्वारा जारी किए गए हटाए गए डिलीट को सही ढंग से संभालती है जो डेटाबेस तक पहुंचती है। एसक्यूएल सर्वर में अपेक्षाकृत नया है, मुझे पता है कि ओरेकल बराबर है।

यह समाधान हमारे ओ/आर मैपर के साथ अच्छी तरह से खेलता है - मैंने ऐसे दृश्य बनाए हैं जो नरम हटाए गए रिकॉर्ड फ़िल्टर करते हैं और उनको मैप करते हैं। सभी रिपोर्टिंग के लिए विचारों का भी उपयोग किया जाता है।

+1

बहुत अच्छा सुझाव - ऐसा लगता है कि यह ओआरएम या अन्य डीएएल रणनीति की विशिष्ट पसंद के बावजूद उपयोगी होगा। –

2

आप एलएलबीएलजेन में कस्टम कार्य बना सकते हैं जो आपके लिए उन संस्थाओं को ओवरराइड करेगा जब आप संस्थाएं उत्पन्न कर रहे हों। वेबसाइट पर उनके टेम्पलेट स्टूडियो और टेम्पलेट उदाहरण देखें।

0

यह निर्भर करता है कि आप स्वयं सेवा या एडाप्टर का उपयोग कर रहे हैं या नहीं। यदि एसएस आपको टेम्पलेट को संशोधित करने की आवश्यकता होगी ताकि यह इकाई को हटाने के बजाय आपके लिए ध्वज सेट कर सके।

यदि एडाप्टर है, तो आप DataAccessAdapter से प्राप्त कर सकते हैं और इकाइयों को हटाने के बजाय ध्वज सेट करने के लिए हटाए गए तरीकों को ओवरराइड कर सकते हैं।

यह आमतौर पर प्रदर्शन के लिए एक क्रोधित समाधान है, हालांकि प्रत्येक क्वेरी को "हटाए गए" इकाइयों को फ़िल्टर करने की आवश्यकता होती है - और क्योंकि "हटाए गए" कॉलम पर चुनिंदाता बहुत अधिक नहीं होगी (आपके सभी "अनदेखा" रिकॉर्ड हैं शून्य - मुझे लगता है कि यह उनमें से अधिकतर होगा) अनुक्रमणित करने से आपको कोई बड़ा सौदा नहीं मिलता है - आप बहुत सारे टेबल स्कैन के साथ समाप्त हो जाएंगे।

संबंधित मुद्दे