क्या आर्कोबजेक्ट कोड के बिना संस्करण वाले फीचरक्लास पर प्राथमिक कुंजी बनाए रखना संभव है?


11

चूंकि यह ऑब्जेक्ट में प्राथमिक कुंजी के रूप में ऑब्जेक्ट का उपयोग करने के लिए एक अच्छा विचार नहीं है , इसलिए कुछ अन्य कॉलम का उपयोग करने की आवश्यकता होगी। क्या मुख्य फीचर कॉलम में प्राथमिक कुंजी कॉलम को पॉप्युलेट करने के लिए DBMS दृश्यों का उपयोग करना संभव है, या क्या मुझे ऐसा करने के लिए आर्कोबजेक्ट्स कोड लिखने की आवश्यकता होगी?

मैंने सुना है ग्लोबल आईडी का उपयोग किया जा सकता है , लेकिन गैर-जीआईएस डीबीए की संबंधित तालिकाओं को बनाए रखना अक्सर इस विचार पर आधारित होता है।


मेरी टिप्पणी के बाद से मेरी स्मृति खराब है और शायद यह ठीक से काम नहीं कर रहा है: कई साल पहले, मैंने ऐड टेबल पर एक सम्मिलित ट्रिगर का उपयोग करने की कोशिश की थी। अगर मुझे सही ढंग से याद है, तो यह काम किया। मैं अंततः (और जल्दी से) एक आर्कोबजेक्ट्स सॉल्यूशन (जिसे एक संग्रहीत प्रक्रिया कहा जाता है) में गया, क्योंकि यह आसान था (मेरे लिए) क्योंकि मुझे एक नया फीचरक्लास जोड़ने / संस्करण करते समय एक नया ट्रिगर लिखना नहीं था।
जे कमिंस

2
मुझे लगता है कि यह एक सुस्त जांच के साथ एक AFSERT ट्रिगर (ओरेकल) था, इसलिए नई पंक्ति को मौजूदा प्राथमिक कुंजी मान मिलेगा यदि इसे स्थानांतरित किया गया था। यदि यह अशक्त था, तो यह आबाद होगा। शायद मैं गलत हूं और यह सही काम नहीं कर रहा था और मुझे इसका एहसास नहीं था। डेटाबेस क्या उपयोग कर रहे हैं?
जे कमिंस

@ जय विस्तार के लिए धन्यवाद। इस सवाल को पूछने का मेरा मुख्य कारण यह निर्धारित करना है कि क्या इस समस्या के अलावा अन्य दृष्टिकोण हैं जिनके अलावा मैंने ऐसा करने के लिए लिखा है। मैं किसी को यह नहीं बताना चाहता कि मेरा समाधान पूरी तरह से जांच के बिना एकमात्र संभव समाधान है। और यदि हां, तो इसे बनाए रखना कितना मुश्किल है। मैं केवल कभी-कभी संग्रहीत प्रक्रियाओं को लिखता हूं, और इसका अधिकांश हिस्सा sql सर्वर पर है। मुझे संदेह है कि dbms के स्तर पर (आर्कोबजेक्ट्स के बजाय) ऐसा करने का एक तरीका है, लेकिन कभी भी इसे सभी dbms के करीब से नहीं देखा है।
किर्क कुएकेन्डल २all

जवाबों:


7

हां, यह संभव है - कुछ केवेट के साथ।

आप इसे ट्रिगर के साथ कर सकते हैं - लेकिन कार्यान्वयन DBMS- विशिष्ट होगा (क्योंकि आपको अंतर्निहित डेटाबेस (विशिष्ट) तंत्र का उपयोग करके एक अलग AFSERT ट्रिगर लागू करना होगा।

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

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.