2013-07-07 7 views
5

प्रदर्शन पर विचार करते समय,डीजेंगो या डेटाबेस में बाधाओं की जांच कहां करें?

1) क्या यह पाइथन/डीजेंगो या डेटाबेस में बाधा को लागू करने और जांचने के लिए बेहतर है? या संभवतः दोनों?

2) django में, बाधाओं की जांच करना सबसे अच्छा कहां है? जैसे मॉडल में समारोह बचाओ?

+0

क्वेरी डेटाबेस को अनुकूलित करने के लिए अन्य डेटाबेस के साथ उस डेटाबेस में बाधाओं का उपयोग किया जाता है। इसलिए, आप जहां भी चाहें बाधाओं को मान्य कर सकते हैं लेकिन मैं डेटाबेस में बाधाओं को बनाए रखने और अनुकूलक के उपयोग के लिए मान्य रखने का सुझाव दूंगा। – haki

उत्तर

6

Django पहले से ही सामान्य/विदेशी कुंजी और अद्वितीय (एकल फ़ील्ड या संयोजन के लिए) सामान्य स्तर पर डेटाबेस स्तर तक सामान्य बाधाओं को लागू करता है। अधिक विशिष्ट बाधाओं के लिए, उन्हें रखने के लिए सबसे अच्छी जगह Django के model validation methods के अंदर है। इस तरह आप क्रमशः प्रत्येक विरासत मॉडल या फॉर्म हैंडलिंग रूटीन में अपनी बाधा जांच को फिर से लिखने के बिना मॉडल विरासत और मॉडल रूपों जैसे डीजेगो की विशेषताओं का लाभ उठा सकते हैं।

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

+4

इसका मतलब यह भी नहीं है कि समेकन असंगतता का कारण बन सकता है, क्योंकि दो अलग-अलग धागे मॉडल सत्यापन को पास करते हैं और फिर डेटाबेस को लिखते हैं, जो एक-दूसरे से अनजान हैं? सीधे 'अद्वितीय' बाधाओं के लिए नहीं, क्योंकि उन्हें Django द्वारा डेटाबेस में धकेल दिया जाता है, लेकिन अन्य पंक्तियों के आधार पर किसी अन्य प्रकार की बाधा? – spectras

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