2009-01-12 8 views
6

मैं अपनी वेबसाइट के लिए कुछ url 'slugs' उत्पन्न करने की कोशिश कर रहा हूं। यह उपयोगकर्ता द्वारा उत्पन्न पाठ के एक टुकड़े पर आधारित है।एक अद्वितीय यूआरएल स्लॉग स्टोर करने का सबसे अच्छा तरीका क्या है?

अब, मैं अपने स्लग विधि बना दिया है, तो मैं उसके लिए कुछ कोड के बाद नहीं कर रहा हूँ।

मैं क्या सोच रहा हूं यह निर्धारित करने के लिए सबसे अच्छी जगह कहां है कि यह स्लग अद्वितीय है और फिर इसे सम्मिलित करें क्योंकि स्लग फ़ील्ड एक अद्वितीय कुंजी सूचकांक है।

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

उदाहरण के लिए।

5 रिकॉर्ड तालिका में पाए जाते हैं के साथ एक ही उपयोगकर्ता द्वारा उत्पन्न सामग्री। इस के लिए स्लग अब अंत में 6 जोड़े के साथ स्लग-टेक्स्ट।

दोषों: उपयोगकर्ता अपने पाठ परिवर्तित करता है, स्लग नहीं बदलता है।

वैसे भी, मुझे आश्चर्य है कि क्या अन्य लोगों ने इस मुद्दे को हल करने से पहले और इसे ठीक करने के किसी भी तरीके से पाया है?

उत्तर

15

मैं जिस तरह से stackoverflow यह होता है की तरह थोड़े। दोनों आईडी और स्लग यूआरएल में डालना है। अब स्लग अब अद्वितीय होना चाहिए। मेरा मानना ​​है कि hulu.com इस तरह से भी करता है। मुझे लगता है कि यह समस्या का व्यावहारिक समाधान है।

+2

@toby Stackoverflow वास्तव में (शायद वहाँ अन्य कारणों मैं के बारे में पता नहीं कर रहा हूँ कर रहे हैं) एसईओ प्रयोजनों के लिए ही URL के स्लग हिस्से का उपयोग होता है। मैं क्योंकि किसी भी प्रश्न के लिए यह कहते हैं, यूआरएल http://stackoverflow.com/questions/434376/title-of-post और http://stackoverflow.com/questions/434376 और http://stackoverflow.com/questions/434376/कुल-यादृच्छिक-gobblygoo यूआरएल में संदर्भित विशेष प्रश्न आईडी के सभी संकल्प। – Howiecamp

+0

@Howiecamp, सिर्फ एसईओ के लिए नहीं, संभवतः उपयोगिता के लिए भी ... – James

2

अधिकांश साइटें इस कारण से स्लग नहीं बदलती हैं कि यदि कोई उपयोगकर्ता अपना शीर्षक संपादित करता है तो उसे पहले से ही पोस्ट किए गए पोस्ट के किसी भी लिंक को तोड़ना नहीं चाहिए।

0

आपके पास पहले से मौजूद डेटाबेस समाधान के लिए, यदि यह अच्छी तरह से काम करता है तो सामग्री अपडेट होने पर स्लग को अपडेट करने के लिए एक अपडेट ट्रिगर भी हो सकता है, लेकिन आपको प्रदर्शन हिट की तलाश करनी चाहिए।

वैकल्पिक समाधान के लिए, आप एक मानचित्र का उपयोग कर सकते हैं [मौजूदा स्लग युक्त स्टार्ट अप पर लोड] जिसमें स्लग और मौजूदा गिनती के रूप में कुंजी शामिल है। प्रत्येक बार जब आप स्लग उत्पन्न करते हैं, तो मौजूदा मान निर्धारित करें और तालिका में उससे अधिक मान संलग्न करें और उसके बाद मानचित्र को अपडेट करें।

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