आप स्पष्ट रूप से सुझाव दे रहे हैं कि CONSTRAINT
डेटाबेस में s को एप्लिकेशन द्वारा लागू किया जाना चाहिए जो उस डेटाबेस तक पहुंचते हैं?
यह एक बुरा (बुरा, बुरा ...) विचार है कई कारण हैं ।
1) यदि आप "रोल-योर-कॉन्स्टेंट" इंजन (यानी आपके एप्लिकेशन कोड के भीतर) का निर्माण कर रहे हैं, तो आप केवल Oracle / SQL Server / MySQL / PostgreSQL / <। Whoever ...> खर्च कर रहे हैं। साल लेखन। उनका CONSTRAINT कोड उन वर्षों में परीक्षण किया गया है, जो वास्तव में लाखों अंत-उपयोगकर्ताओं द्वारा देखे गए हैं ।
2) आपके और आपकी टीम के लिए पूरे सम्मान के साथ, आप इसे कुछ वर्षों में भी सही नहीं मानेंगे - यहाँ से , अकेले MySQL कोड की कीमत 40 मिलियन डॉलर है। और MySQL उपरोक्त 3 सर्वरों में से सबसे सस्ता है, और वे CHECK CONSTRAINTs को भी लागू नहीं करते हैं। जाहिर है, आरआई (रेफरेंशियल इंटीग्रिटी) को पूरी तरह से सही पाना मुश्किल है।
मैं ओरेकल फ़ोरम का लगातार उपयोग करता था और मैं आपको कई बार बता नहीं सकता कि कुछ गरीब प्रबंधक / प्रोग्रामर ने उस पर एक प्रोजेक्ट किया है, जहाँ प्रतिभा ने अपना काम करने से पहले "उज्ज्वल" विचार किया था जो आप सुझाते हैं। ।
जोनाथन लुईस (उन्होंने ओरेकल ऑप्टिमाइज़र के मूल सिद्धांतों पर 550 पृष्ठ की किताब लिखी ) के रूप में कोई नहीं देता है। एक अन्य पुस्तक में उनके डिजाइन डिजास्टर के 2 (" द स्टोरी ऑफ द ओक टेबल " - ओक टेबल ओरेकल विशेषज्ञों का एक समूह है)
- हम Oracle की बाधा जाँच क्षमताओं का लाभ लेने के बजाय आवेदन स्तर पर डेटा अखंडता की जाँच करेंगे।
3) यहां तक कि अगर कुछ चमत्कार से आप आरआई को ठीक से लागू कर सकते हैं, तो आपको उस डेटाबेस को छूने वाले हर एप्लिकेशन के लिए समय और फिर से इसे पूरी तरह से फिर से लागू करना होगा - और यदि आपका डेटा महत्वपूर्ण है, तो नए एप्लिकेशन होंगे। इसे एक प्रतिमान के रूप में चुनने से आपको और आपके साथी प्रोग्रामरों (सहायक कर्मचारियों और बिक्री का उल्लेख नहीं) को निरंतर अग्निशमन और दुख के जीवन का सामना करना पड़ेगा।
आप इस बारे में अधिक पढ़ सकते हैं कि एप्लिकेशन स्तर पर डेटा CONSTRAINTs को लागू करने के लिए यहां , यहां और यहां पागलपन की कोई कमी नहीं है ।
विशेष रूप से आपके प्रश्न का उत्तर देने के लिए:
बस उन्हें क्यों घोषित किया जाता है? यह बहुत उपयोगी लगता है, लेकिन क्या वास्तव में एक डेटाबेस होना आवश्यक है जो कार्य करता है
कारण यह है कि KEY
रों (या तो PRIMARY
, FOREIGN
, UNIQUE
या सिर्फ साधारण INDEX
ते) घोषित किया गया है, जबकि यह है कि है, सख्ती से नहीं है, आवश्यक एक डेटाबेस उन्हें करने के लिए के लिए इसके लिए कार्य करते हैं बिल्कुल आवश्यक हो तो उन्हें कार्य करने के लिए इसके लिए घोषित करने के लिए अच्छी तरह से ।