2009-08-26 14 views
10

में ट्विटर नाम की लंबाई मैं साइट पर सदस्यों के लिए ट्विटर नामों के लिए सदस्य तालिका में एक फ़ील्ड जोड़ रहा हूं। जो मैं काम कर सकता हूं उससे अधिकतम ट्विटर नाम की लंबाई 20 है, इसलिए ऐसा लगता है कि मुझे फील्ड आकार को वर्चर (20) (SQL सर्वर) पर सेट करना चाहिए।डीबी

क्या यह एक अच्छा विचार है?

क्या होगा यदि ट्विटर उपयोगकर्ता नामों में बहु-बाइट वर्णों को अनुमति देता है? क्या मुझे यह क्षेत्र nvarchar बनाना चाहिए?

क्या होगा यदि ट्विटर उपयोगकर्ता नाम के आकार को बढ़ाने का निर्णय लेता है? क्या मुझे इसके बजाय 50 बनाना चाहिए और फिर उपयोगकर्ता को चेतावनी दी जानी चाहिए कि क्या वे 20 से अधिक नाम दर्ज करते हैं?

मैं रक्षात्मक रूप से कोड करने की कोशिश कर रहा हूं ताकि मैं इस इनपुट फ़ील्ड के आसपास कोड को संशोधित करने की संभावना को कम कर सकूं और डीबी स्कीमा परिवर्तनों की आवश्यकता हो सकती है।

+0

20 वर्ण हमेशा 20 वर्णों के बराबर नहीं होते हैं, विशेष वर्णों को HTML एन्कोडेड होने की आवश्यकता हो सकती है। –

उत्तर

22

एक ही जानकारी की तलाश में जब मैं चहचहाना सहायता अनुभाग में अजीब जगह का एक प्रकार में निम्नलिखित (? क्यों नहीं एपीआई डॉक्स कौन जानता है में) में पाया गया 15 अक्षर। और क्यों नहीं? क्योंकि हम आपके उपयोगकर्ता नाम को आपके 140 अक्षरों को आउटगोइंग एसएमएस अपडेट और आईएम संदेशों पर जोड़ते हैं। यदि आपका नाम 15 वर्णों से लंबा है, तो आपका संदेश एक ही टेक्स्ट संदेश में भेजने में बहुत लंबा होगा। "

http://help.twitter.com/entries/14609-how-to-change-your-username

तो शायद एक भी varchar (16)

1

[राय केवल]

  • ट्विटर एसएमएस और सीमा नहीं 256 अक्षरों की तरह कुछ है पर काम करता है, इसलिए नाम संदेश में टकराने से बचने के लिए छोटे हो गया है।
  • nvarchar सभी ट्विटर पाठ
  • के लिए एक अच्छा विचार होगा यदि एक ट्विटरर की वास्तविक आईडी एक सेल फोन है तो सबसे लंबा फोन नंबर आपके अधिकतम 20 को आसानी से कवर करना चाहिए!
  • रक्षात्मक प्रोग्रामिंग हमेशा अच्छा है :)!

[/ राय केवल]

+5

एसएमएस टेक्स्ट सीमा 168 वर्ण है। Hooloovoo

2

आजकल, अंतरिक्ष आम तौर पर नहीं एक चिंता का विषय है, इसलिए मैं एक ज्यादातर सामान्य दृष्टिकोण का उपयोग करेंगे: उपयोग nvarchar (200)।

डीबी स्कीमा डिजाइन करते समय आपको प्रोग्रामिंग के मुकाबले 2 कदम आगे सोचना चाहिए। या अपने आप को एक अच्छी स्कीमा अपडेट रणनीति प्राप्त करें, तो आप वर्कर (20) के साथ भी ठीक होंगे।

1

केवल इतना ही है कि आप रक्षात्मक रूप से कोड कर सकते हैं, मैं twitter API दस्तावेज़ीकरण को देखने और वहां निर्दिष्ट कुछ भी करने का सुझाव देना चाहता हूं। उस ने कहा, कहीं भी एक सरसरी दिखने से उपयोगकर्ता नाम की लंबाई निर्दिष्ट नहीं होती है, कष्टप्रद:/

2

व्यक्तिगत रूप से मैं चिंता नहीं करता। 200 (या 256 की तरह एक अच्छा दौर संख्या) का उपयोग करें और आपको यह समस्या नहीं होगी। तब सीमा उनके एपीआई पर है, इसलिए हो सकता है कि आप कुछ सत्यापन करना सबसे अच्छा हो कि यह वास्तविक उपयोगकर्ता नाम है। उस सत्यापन में अंतर्निहित लंबाई की जांच शामिल है।

+4

मुझे इस प्रतिक्रिया से प्यार है, "256 की तरह एक अच्छा दौर संख्या," जब तक मैंने इसे दूसरी बार पढ़ा नहीं तो मुझे अजीब भी नहीं मारा। – Rob

0

मुझे लगता है कि आप अपने एप्लिकेशन में ट्विटर नाम फ़ील्ड पर डेटा एंट्री का प्रबंधन कर रहे हैं, बस डेटाबेस में कहीं और। यदि आप 200 अक्षरों में फ़ील्ड खोलते हैं, तो आपको केवल एक ही स्थान पर कोड बदलना होगा या यदि आप उपयोगकर्ताओं को 20 से अधिक वर्णों के साथ ट्विटर्स नाम दर्ज करने की अनुमति देते हैं, तो आपको किसी बदलाव के बारे में चिंता करने की आवश्यकता नहीं है।

2

ट्विटर ट्रांसमिशन के लिए संदेश पेलोड के रूप में 140 वर्णों को टाइप करने की अनुमति देता है, और एसएमएस संदेश की शुरुआत में "[उपयोगकर्ता नाम]:" शामिल है। एसएमएस पर आधारित संदेश प्रणाली के साथ संयुक्त संदेश के लिए 140 वर्णों की ऊपरी सीमा के साथ, मुझे लगता है कि उन्हें उपयोगकर्ता नाम बढ़ाने के लिए स्वीकार्य संदेश आकार को कम करना होगा। मुझे लगता है कि यह एक बहुत ही सुरक्षित शर्त है कि 20 वर्ण अधिकतम उपयोगकर्ता नाम की लंबाई होगी। अगर कोई 16-बिट वर्णों का उपयोग करता है तो मैं nvarchar का उपयोग करता हूं, और शायद इसे थोड़ा सा पैड कर सकता हूं। nvarchar(24) काम करना चाहिए; मैं से अधिक नहीं जाऊंगा।

यदि आप उनकी सेवा के लिए ऐप विकसित करने जा रहे हैं, तो आपको शायद ट्विटर के API Announcements mailing list पर संदेश देखना चाहिए।

1

ध्यान में रखना एक बात यह है कि nvarchar का उपयोग करने वाले क्षेत्र में दो गुना अधिक जगह की आवश्यकता होती है, क्योंकि प्रत्येक संभावित यूनिकोड चरित्र को स्टोर करने के लिए इसे 2 बाइट की आवश्यकता होती है। इसलिए, एक ट्विटर स्थिति को nvarchar का उपयोग करके 280 के आकार की आवश्यकता होगी, प्लस संभवतः संभवतः रीट्वीट के लिए कुछ और है, क्योंकि 140 140 सीमा में इन्हें शामिल नहीं किया गया है। मैंने आज वास्तव में यह खोज लिया!

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

आरटी @chatrbyte: यहाँ कुछ महान ट्वीट है कि मैं कर रहा हूँ retweeting है।

आरटी @chatrbyte: 140 अक्षरों की सीमा में शामिल नहीं है।

तो, यह मानते हुए कि एक ट्विटर उपयोगकर्ता नाम में 20 वर्ण सीमा है, और एक रीटविट को भी कैप्चर करना चाहते हैं, एक पूर्ण ट्वीट रखने के लिए एक फ़ील्ड को आकार 280 + 40 (उपयोगकर्ता नाम के लिए) + n8 का nvarchar होना चाहिए (प्रारंभिक आरटी के लिए @ एक ट्वीट से पहले) +4 (के लिए: + रीसेट उपयोगकर्ता नाम के बाद स्पेस) = 330.

मैं कहूंगा कि अपने आप को थोड़ा कमरा देने के लिए nvarchar (350) के लिए जाना होगा। यही वह है जो मैं अभी कोशिश कर रहा हूं। अगर मैं गलत हूं तो मैं यहां अपडेट करूंगा।

"आपका उपयोगकर्ता नाम करने के लिए हो सकते हैं:

+0

मुझे विश्वास है कि आप गलत हैं: "** आरटी @chatrbyte: **" ** _ _ _ _ 140 वर्णों में शामिल है। फिट करने के लिए मिठाई काटा जा सकता है। – drevicko

9

के साथ भाग मिल सकता है जबकि नए खाते उपयोगकर्ता नाम नाम में और 20 वर्ण में 15 वर्ण की एक सीमा होती है, पुराने खातों के लिए यह सीमा अपरिभाषित प्रतीत होती है। प्रलेखन here कहता है:

Earlybirds: ट्विटर के प्रारंभिक उपयोगकर्ताओं को एक उपयोगकर्ता नाम या उपयोगकर्ता नाम से अधिक समय असली नाम हम वर्तमान में अनुमति देते हैं हो सकता है। यह तब तक ठीक है जब तक आपको अपनी खाता सेटिंग्स में बदलावों को सहेजने की आवश्यकता न हो। कोई परिवर्तन तब तक सहेजा नहीं जाएगा जब तक आपका उपयोगकर्ता/वास्तविक नाम उचित लंबाई न हो; इसका मतलब है कि आपको अपने सबसे आधुनिक नियमों को पूरा करने के लिए अपना वास्तविक नाम/उपयोगकर्ता नाम बदलना होगा।

तो शायद आप लंबे समय तक रहने के लिए बेहतर हैं और जब आप सीमा मामलों को दबाते हैं तो कुछ समय बचाएं।