आपको "एप्लिकेशन कुंजी" और "तकनीकी कुंजी" के बीच का अंतर समझना होगा।
तकनीकी कुंजी एक आइटम को अद्वितीय बनाने के एकमात्र उद्देश्य के लिए मौजूद है। यह आमतौर पर इंटेगर या बिगिनट में उत्पन्न होता है, उत्पन्न (पहचान, जो कुछ भी)। इस कुंजी का उपयोग डेटाबेस में ऑब्जेक्ट्स का पता लगाने के लिए किया जाता है, किसी ऑब्जेक्ट से जल्दी से पता चला है कि पहले से ही जारी रखा गया है (आईडी होना चाहिए> 0, इसलिए डिफ़ॉल्ट आईडी == 0 वाला ऑब्जेक्ट डीबी में नहीं है), आदि
एप्लिकेशन कुंजी ऐसा कुछ है जिसे आपको अपने आवेदन के संदर्भ में किसी ऑब्जेक्ट को समझने की आवश्यकता है। इस मामले में, यह गैलरी में तस्वीरों का ऑर्डरिंग है। इसका डेटाबेस के लिए कोई मतलब नहीं है।
आदेशित सूची सोचें: यह अधिकांश भाषाओं में डिफ़ॉल्ट है। आपके पास इंडेक्स द्वारा एक्सेस की गई वस्तुओं का एक सेट है। डेटाबेस के लिए, यह अनुक्रमणिका एक अनुप्रयोग कुंजी है क्योंकि डेटाबेस में सेट अनियंत्रित होते हैं (या इसके बजाय डेटाबेस किसी ऑर्डरिंग की गारंटी नहीं देता है जब तक आप ऑर्डर द्वारा निर्दिष्ट नहीं करते हैं)। इसी कारण से, एक प्रश्न से परिणामों के माध्यम से पेजिंग इस तरह का दर्द है: डेटाबेस वास्तव में "स्थिति" के विचार को पसंद नहीं करते हैं।
तो आपको क्या करना चाहिए एक इंडेक्स पंक्ति जोड़ें (यानी एक इंटेग्रर जो कहता है कि आपकी छवि गैलरी में कौन सी स्थिति है, त्वरित पहुंच के लिए डेटाबेस इंडेक्स नहीं है, भले ही आपको इस कॉलम पर एक इंडेक्स बनाना चाहिए .. ।) और इसे बनाए रखें। प्रत्येक सम्मिलन के लिए, आपको UPDATE index = index + 1 where index >= insertion_point
, आदि
हां, यह बेकार है। एकमात्र समाधान जो मुझे पता है: एक ओआरएम फ्रेमवर्क का उपयोग करें जो आपके लिए यह हल करता है।
स्रोत
2009-03-23 16:10:04
ऐसा करने का कोई एएनएसआई तरीका उपलब्ध नहीं है। यदि आप बता सकते हैं कि आप किस डीबी सर्वर का उपयोग कर रहे हैं तो हम मदद कर सकते हैं। इसे जोड़ने के लिए अपना प्रश्न संपादित करें। – Seb
आह हाँ .. MySQL .. माफ करना भूल गया कि थोड़ा –
आप ऐसा क्यों करना चाहते हैं? थोड़ी स्पष्ट करें - क्योंकि आपको दिखाने की स्थिति की आवश्यकता नहीं है, कहें, पिछली और अगली तस्वीरें ... आदि –