व्यक्ति "नाम" फ़ील्ड पर एक उचित लंबाई सीमा क्या है?


138

मेरे पास एक सरल वेबफॉर्म है जो बिना नाम वाले उपयोगकर्ताओं को नाम सहित उनकी जानकारी इनपुट करने की अनुमति देगा। मैंने अपने डेटाबेस तालिका के साथ मेल करने के लिए नाम फ़ील्ड को 50 वर्णों की सीमा दी, जहां फ़ील्ड varchar (50) है, लेकिन फिर मैंने आश्चर्य करना शुरू कर दिया।

क्या टेक्स्ट कॉलम प्रकार जैसी किसी चीज़ का उपयोग करना अधिक उचित है या क्या मुझे नाम की लंबाई को कुछ उचित होना चाहिए?

मैं SQL सर्वर 2005 का उपयोग कर रहा हूं, आपकी प्रतिक्रिया में मायने रखता है।

EDIT: मैंने इस तरह के मुद्दों के बारे में यह व्यापक सवाल नहीं देखा ।


1
विषय पर बहुत चर्चा के लिए इस संबंधित प्रश्न की जाँच करें
क्रिस मैराती-जॉर्ज

2
नोट करने के लिए कुछ, वैश्वीकरण के इस युग में varchar आमतौर पर सही डेटाटाइप नहीं है, संभावना है कि आपको nvarchar का उपयोग करना चाहिए।
ताओ

@ ताओ: चूंकि वह एमएस SQL ​​सर्वर का उपयोग कर रहा है, मैं सहमत हूं। लेकिन VARCHAR है अन्य एसक्यूएल कार्यान्वयन UTF-8 के लिए बेहतर समर्थन है में सही डेटाप्रकार।
dan04

जवाबों:


142

यूके सरकार डेटा मानक कैटलॉग में दिए गए नाम और परिवार के नाम में से प्रत्येक के लिए 35 वर्ण या पूर्ण नाम रखने के लिए एक ही क्षेत्र के लिए 70 वर्ण सुझाते हैं।


3
लिंक को 22 अक्टूबर, 2010 तक अद्यतन किए जाने की आवश्यकता है। मैंने इसके लिए googled: साइट: *। Gov.uk नाम "35 वर्ण" और इस doc न्याय
टोनी आर

उनके लिंक वास्तव में बहुत बुरे लग रहे हैं ... जैसा कि 8/2012: webarchive.nationalarchives.gov.uk/+/http://…
थॉमस बी

6
मेरे द्वारा पाया गया सबसे लंबा "उचित" पूरा नाम "गिसेले मैरी-लुईस मार्गुराइट लाफले" (39-बाइट्स-लंबाई) है।
user1154664

थोड़ा बड़ा 54 वर्ण: gw.geneanet.org/…
mestachs

3
न्यूजीलैंड पूर्ण नामों को सीमित करता है: उन्हें रिक्त स्थान सहित 100 से कम लंबे अक्षर होने चाहिए, और उनमें प्रतीक या संख्या नहीं हो सकती। हालांकि मुझे लगता है कि परिवार के नामों में हाइफ़न की अनुमति है।
ग्लूटनीक्स

27

मुझे पता है कि मुझे इस पर देर हो रही है, लेकिन मैं इस टिप्पणी को किसी भी तरह जोड़ दूंगा, क्योंकि अन्य भविष्य में भी इसी तरह के सवालों के साथ यहां आ सकते हैं।

लोकेल पर निर्भर कॉलम साइज से सावधान रहें। एक शुरुआत के लिए, यह एक रखरखाव दुःस्वप्न के लिए आपको स्थापित करता है, इस तथ्य को छोड़कर कि लोग पलायन करते हैं, और उनके साथ अपने नाम लेते हैं।

उदाहरण के लिए, उन अतिरिक्त उपनामों वाले स्पेनिश लोग अंग्रेजी बोलने वाले देश में जा सकते हैं और रह सकते हैं, और उनका पूरा नाम इस्तेमाल करने की उम्मीद कर सकते हैं। रूसियों के पास अपने उपनामों के अलावा संरक्षक हैं, कुछ अफ्रीकी नाम अधिकांश यूरोपीय नामों की तुलना में काफी लंबे समय तक हो सकते हैं।

संभावित रूप से गिनती गिनते हुए प्रत्येक कॉलम को उतना ही चौड़ा बनाएं जितना आप कर सकें। मैं पहले नाम, अन्य दिए गए नाम और उपनाम के लिए 40 अक्षरों का उपयोग करता हूं और कभी कोई समस्या नहीं हुई।


उत्तर के लिए धन्यवाद, भले ही यह कुछ समय रहा हो।
लुप्तप्राय

9

मैं आमतौर पर varchar (255) (255 MySQL में varchar type की अधिकतम लंबाई) के साथ जाता हूं।


30
और क्या आप अपने GUI और अन्य मीडिया में 255 वर्णों का स्थान आरक्षित करते हैं जहाँ पहला / अंतिम नाम प्रदर्शित होता है? ;-)
एंड्रयू बुर्जुआ

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

6

यदि यह एक क्षेत्र में पूरा नाम है, तो मैं आमतौर पर अलग-अलग क्षेत्रों में पहली और आखिरी बार 128 - 64/64 के साथ जाता हूं - आप बस कभी नहीं जानते।


6

@ इयान नेल्सन: मुझे आश्चर्य है कि अगर दूसरों को वहां समस्या दिखाई देती है।

मान लीजिए कि आपके पास विभाजित क्षेत्र हैं। कि कुल 70 वर्ण हैं, पहले नाम के लिए 35 और अंतिम नाम के लिए 35। हालांकि, यदि आपके पास एक क्षेत्र है, तो आप उस स्थान की उपेक्षा करते हैं जो पहले और अंतिम नामों को अलग करता है, आपको 1 वर्ण द्वारा बदल देता है। ज़रूर, यह "केवल" एक चरित्र है, लेकिन यह किसी के पूर्ण नाम में प्रवेश करने और किसी के बीच अंतर नहीं कर सकता है। इसलिए, मैं उस सुझाव को "दिए गए नाम और परिवार के नाम के प्रत्येक के लिए 35 वर्ण या पूर्ण नाम रखने के लिए एक क्षेत्र के लिए 71 वर्ण" को बदल दूंगा।


2
उस दस्तावेज़ का अनुसरण करने की बात यह है कि आप यूके की अन्य सरकारी प्रणालियों के साथ इंटरऑपरेबल हैं, इसलिए आप व्यक्तिगत रूप से 70 से 71 तक टकरा नहीं सकते हैं और इसे एक दिन कॉल कर सकते हैं, अन्यथा 70 चार्ट की सीमा वाले सिस्टम आपके पाठ को काट देंगे। (आप अपने सिस्टम के भीतर दोनों रूपों में डेटा को स्टोर करने के लिए नहीं हैं।) यह वास्तव में खराब हो जाता है, क्योंकि पूर्ण नाम में न केवल परिवार / दिए गए, बल्कि शीर्षक और प्रत्यय भी शामिल हैं, जिसमें प्रत्येक के लिए 35 चार्ट की सीमा भी है, संलग्न क्षेत्रों में एक मजेदार भरा 143 अधिकतम वर्ण। डेवलपर के रूप में बेकार है, जिसे नाम के भंडारण के दोनों रूपों के साथ डेटा का आदान-प्रदान करना है।
mmitchell

3
स्पष्ट रूप से मार्गदर्शन इस अपेक्षा से लिखा गया है कि किसी व्यक्ति का एक लंबा नाम दिया जा सकता है (35 वर्णों तक) या एक लंबा परिवार का नाम (35 वर्ण तक), लेकिन नाम के दोनों भागों के इतने लम्बे होने की संभावना नहीं है।
इयान नेल्सन

3

यूके में, कुछ सरकारी मानक हैं जो यूके की आबादी के बहुत से सफलतापूर्वक निपटते हैं - पासपोर्ट कार्यालय, चालक और वाहन लाइसेंसिंग एजेंसी, डीड पोल कार्यालय और एनएचएस। वे स्पष्ट रूप से विभिन्न मानकों का उपयोग करते हैं।

डीड पोल द्वारा अपना नाम बदलने से 300 पात्रों की अनुमति मिलती है ;

आपके नाम की लंबाई पर कोई कानूनी सीमा नहीं है, लेकिन हम आपके पूर्ण नाम के लिए 300 अक्षरों (रिक्त स्थान सहित) की सीमा लगाते हैं।

एनएचएस रोगी के नाम के लिए 70 अक्षरों का उपयोग करता है

रोगी का नाम
प्रारूप / लंबाई: अधिकतम a70

पासपोर्ट कार्यालय 30 + 30 प्रथम / अंतिम और ड्राइविंग लाइसेंस (DVLA) 30 कुल की अनुमति देता है।

ध्यान दें कि अन्य संगठनों के अपने स्वयं के प्रतिबंध हैं कि वे उन दस्तावेजों पर क्या दिखाएंगे जो वे पैदा करते हैं - एचएम पासपोर्ट कार्यालय के लिए सीमा आपके फ़ोरनाम और आपके उपनाम के लिए प्रत्येक में 30 वर्ण हैं, और डीवीएलए के लिए यह सीमा आपके द्वारा कुल 30 वर्ण है। पूरा नाम।



2

क्या आप वास्तव में पूछ रहे हैं एक संबंधित है, लेकिन काफी अलग सवाल है: डेटाबेस में उन्हें फिट करने के लिए मैं कितनी बार नामों को अलग करना चाहता हूं? उत्तर दोनों नामों की अलग-अलग लंबाई की आवृत्ति के साथ-साथ चुने गए अधिकतम लंबाई पर निर्भर करता है। यह चिंता डेटाबेस द्वारा उपयोग किए जाने वाले संसाधनों के बारे में चिंताओं से संतुलित है। यह देखते हुए कि एक वर्गाकार क्षेत्र के लिए अलग-अलग अधिकतम लंबाई के बीच कितना कम ओवरहेड अंतर है, मैं आम तौर पर गलत करूँगा कि मैं कभी भी किसी नाम को छोटा करने के लिए मजबूर नहीं हुआ हूं और क्षेत्र को उतना बड़ा बना दूं जितना मैंने हिम्मत की।


1

ध्यान दें कि कई संस्कृतियों में 'दूसरे उपनाम' होते हैं जिन्हें अक्सर पारिवारिक नाम कहा जाता है। उदाहरण के लिए, यदि आप स्पैनिश लोगों के साथ काम कर रहे हैं, तो वे अपने 'उपनाम' से अलग एक पारिवारिक नाम रखने की सराहना करेंगे।

सर्वश्रेष्ठ शर्त नाम घटकों के लिए एक डेटा प्रकार को परिभाषित करना है, उपनाम के लिए डेटा प्रकार के लिए उन का उपयोग करें और लोकेल के आधार पर ट्विक करें।


उन स्थानों में सीमाएँ छोटा करने का कोई लाभ नहीं है, जो सांख्यिकीय रूप से छोटे मान रखते हैं - क्षेत्र का आकार लिया गया स्थान को प्रभावित नहीं करता है, जब तक कि कुछ मूल्य वास्तव में उन अतिरिक्त अनुमत वर्णों को नहीं लेते हैं (और फिर इसका मतलब है कि आपने वैसे भी सही विकल्प बनाया है) !
ताओ

0

औसत प्रथम नाम लगभग 6 अक्षर हैं। यह एक अंतिम नाम के लिए 43 छोड़ देता है। :) लगता है अगर आप चाहें तो आप इसे छोटा कर सकते हैं।

मुख्य सवाल यह है कि आपके पास कितनी पंक्तियाँ होंगी? मुझे नहीं लगता कि varchar (50) आपको मारने जा रहा है जब तक आपको कई मिलियन पंक्तियाँ नहीं मिल जातीं।


6
यदि आपके पास एक varchar (20) कॉलम में 10 और 15 वर्णों के बीच 50 मिलियन मान हैं, और एक varchar (50) कॉलम में समान 50 मिलियन मान हैं, तो वे ठीक उसी स्थान को लेंगे। यह चरचर के पूरे बिंदु के रूप में, चार के विपरीत है।
ताओ


0

आपके डेटाबेस का उपयोग कौन करने जा रहा है, इस पर निर्भर करता है, उदाहरण के लिए अफ्रीकी नाम अंतिम नाम के लिए varchar (20) के साथ करेंगे और पहला नाम अलग हो जाएगा। हालाँकि यह राष्ट्र से राष्ट्र के लिए अलग है, लेकिन आपके डेटाबेस संसाधनों और मेमोरी को बचाने के लिए, अंतिम नाम और प्रथम नाम फ़ील्ड को अलग करें और varchar (30) का उपयोग करें।

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