स्टोर करने के लिए सबसे अच्छी प्राथमिक कुंजी जो वेबसाइट पता और पेज यूआरएल स्टोर करने के लिए सबसे अच्छी प्राथमिक कुंजी है?यूआरएल
autoincremental id (जो वास्तव में डेटा से जुड़ा हुआ नहीं है) के उपयोग से बचने के लिए, मैंने प्राथमिक कुंजी के रूप में यूआरएल के SHA1 हस्ताक्षर के उपयोग के साथ स्कीमा तैयार किया।
यह दृष्टिकोण कई तरीकों से उपयोगी है: उदाहरण के लिए मुझे डेटाबेस से last_id पढ़ने की आवश्यकता नहीं है, इसलिए मैं कुंजी की गणना करने वाले सभी तालिका अपडेट तैयार कर सकता हूं और एक ही लेनदेन में वास्तविक अपडेट कर सकता हूं। कोई बाधा उल्लंघन नहीं।
वैसे भी मैंने दो किताबें पढ़ीं जो मुझे बताती हैं कि मैं गलत हूं। "उच्च प्रदर्शन MySQL" में यह कहा जाता है कि यादृच्छिक कुंजी डीबी अनुकूलक के लिए अच्छा नहीं है। इसके अलावा, प्रत्येक जो सेल्को की किताबों में वह कहता है कि प्राथमिक कुंजी डेटा का कुछ हिस्सा होना चाहिए।
सवाल यह है कि: यूआरएल के लिए प्राकृतिक कुंजी हैं ... स्वयं यूआरएल हैं। तथ्य यह है कि यदि किसी साइट के लिए यह छोटा है (www.something.com), तो यूआरएल के लिए लगाई गई सीमा नहीं है (http://www.boutell.com/newfaq/misc/urllength.html देखें)।
विचार करें कि मुझे उनमें से कुछ लाखों को स्टोर (और साथ काम करना) है।
तब सबसे अच्छी कुंजी कौन सा है? Autoincremental आईडी, यूआरएल, यूआरएल के हैंश?
मुझे लगता है कि यह इन यूआरएल, एक्सेस के पैटर्न इत्यादि के साथ आप और क्या कर रहे हैं, इस पर निर्भर करने जा रहे हैं। SHA1 का उपयोग टकराव से सुरक्षित होना चाहिए, जहां एक छोटा हैश फ़ंक्शन (उदाहरण के लिए सीआरसी 32) स्पष्ट रूप से अनुचित होगा, लेकिन टकराव अभी भी संभव हो सकता है, आप बस दुर्भाग्यपूर्ण होगा। –