2009-08-02 3 views
5

संग्रहित प्रोसेस लिखने के लिए कोई पैटर्न हैं? जैसे:पैटर्न?

  1. क्या हमें अद्यतन के लिए 1 एसपी, 1 सम्मिलित करने के लिए 1 और प्रत्येक तालिका के लिए चयन के लिए 1 लिखना चाहिए।
  2. विचार बनाने के लिए यह कब अच्छा है।
  3. एसपी में व्यवसाय नियमों का प्रबंधन कैसे करें?
  4. कैसे डुप्लिकेट कोड आदि आदि कम करने के लिए ..

किसी भी अच्छा लेख या किताब इन पैटर्न के बारे में पढ़ने के लिए ...

धन्यवाद

+1

इसे पढ़ें: http://stackoverflow.com/questions/718282/best-books-in-database-design-and-optimization –

+0

@HawX: प्रत्यक्ष उत्तर नहीं, लेकिन सहायक। धन्यवाद। –

+0

संग्रहित प्रक्रियाएं विक्रेता लॉक-इन का एक महत्वपूर्ण स्रोत हैं, जो एक महत्वपूर्ण विचार हो सकती है। –

उत्तर

6

आमतौर पर, संग्रहीत procs एक CRUD का पालन करें (http://en.wikipedia.org/wiki/Create,_read,_update_and_delete) पैटर्न, लेकिन उन्हें इस तक सीमित नहीं होना चाहिए।

1) आप शायद अद्यतन और सम्मिलित करना चाहते हैं। यदि प्राथमिक कुंजी भर जाती है तो यह एक अद्यतन है, अन्यथा यह एक सम्मिलित है। GUID और अन्य क्लाइंट-जेनरेट की गई कुंजी के लिए, आप पहले अपडेट करते हैं, और यदि पंक्ति गणना शून्य है, तो आपको एक सम्मिलित करने की आवश्यकता है। सम्मिलित/अद्यतन proc आमतौर पर प्राथमिक कुंजी देता है।

आप get_by_id proc के साथ-साथ get_by_non-अद्वितीय-मानदंडों की कुछ संख्या चाहते हैं, जो पंक्तियों की किसी भी संख्या को वापस कर देते हैं। विचार यह सुनिश्चित करना है कि परिणाम सेट में कॉलम सभी प्राप्त/सूची procs में समान हैं।

इन प्रक्रियाओं का लक्ष्य जरूरी नहीं है कि एक तालिका, या यहां तक ​​कि एक दृश्य, बल्कि एक तार्किक इकाई है, इसलिए आपको संबंधों और लुकअप दोनों के लिए विभिन्न जुड़ने की आवश्यकता हो सकती है। यह एकाधिक परिणाम सेट वापस करने में मदद कर सकता है।

2) दृश्य आसान हैं, लेकिन इसके लिए विशेष रूप से प्रासंगिक नहीं हैं। कभी-कभी वे पुन: उपयोग करने में मदद करते हैं, लेकिन हमेशा नहीं।

3) यह सब व्यवसाय नियमों पर निर्भर करता है। आप निश्चित रूप से संग्रहीत प्रो स्तर पर कुछ प्रकार के डेटा भ्रष्टाचार को रोक सकते हैं, लेकिन इसकी सीमाएं हैं कि यह कितना या जानना चाहिए। ऐसा कहकर, विशेष उद्देश्य के मामले हैं जहां आप proc में लॉग इन करना अधिक तर्क देना चाहते हैं।

4) आप हमेशा ऐसा नहीं कर सकते हैं, लेकिन आप कभी-कभी निम्न-स्तरीय स्टॉर्ड प्रोसेस में सामान्य कोड को कारक बना सकते हैं जिसे उपयोगकर्ता कॉल नहीं करता है।

आशा है कि यह एक शुरुआत है।