सामान्य व्यक्ति क्षेत्रों (नाम, ईमेल, पता, लिंग आदि ...) पर सर्वोत्तम अभ्यास [बंद]


44

लंबाई और डेटा प्रकारों पर सामान्य क्षेत्रों में सबसे आम सर्वोत्तम अभ्यास क्या हैं:

  • पहला नाम
  • उपनाम
  • पता
  • ईमेल
  • लिंग
  • राज्य
  • Faridabad
  • देश
  • फ़ोन नंबर

आदि....


यह सवाल व्यापक है। इसे शुद्ध करके हटा दिया जाना चाहिए।
इवान कैरोल

जवाबों:


50

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

  • पहला और अंतिम नाम: आप नाम क्यों कैप्चर कर रहे हैं? यदि आपको किसी व्यक्ति के पूर्ण कानूनी नाम (अर्थात आप कानूनी दस्तावेज या जन्म प्रमाण पत्र तैयार कर रहे हैं) पर कब्जा करने की आवश्यकता है, तो आप शायद लोगों को आपके लिए टाइप करने के लिए अधिक स्थान की अनुमति देना चाहते हैं यदि आप किसी व्यक्ति का नाम पूछ रहे हैं तो आप अपने नए वेब ऐप में उन्हें कॉल करने के लिए कुछ है।
  • पता: आप पते के साथ क्या करने जा रहे हैं? आप किस प्रकार के पते संग्रहीत कर रहे हैं? यदि आप संयुक्त राज्य में एक संपत्ति का पता संग्रहीत कर रहे हैं, जिस पर आप एक बंधक बना रहे हैं, तो आप पूरी तरह से मानकीकृत पता प्राप्त करने के बारे में बहुत अधिक देखभाल करते हैं, जिस स्थिति में डेटा मॉडल संभवतः आपके पते के बहुत करीब पहुंचना चाहेगा। मानकीकरण उपकरण देता है। यदि आप चाहते हैं कि लोग किसी उत्पाद को वितरित करने के लिए एक पते में टाइप करने में सक्षम हों, तो फ्रीफ़ॉर्म टेक्स्ट के लिए कुछ पंक्तियाँ संभवतः पर्याप्त हैं। लाइनों की लंबाई डाउनस्ट्रीम प्रक्रियाओं की आवश्यकताओं पर निर्भर हो सकती है जो प्रिंट एड्रेस लेबल जैसी चीजें करती हैं।
  • स्थिति: मान लें कि आप मान्य राज्य मानों की पहचान कर सकते हैं, तो यह संभवतः STATEतालिका बनाने STATEऔर ADDRESSतालिकाओं के बीच एक विदेशी कुंजी संबंध बनाने के लिए समझ में आता है । लेकिन मान्य मानों की पहचान करने की क्षमता का अर्थ है कि आप कम से कम देशों के विशेष पते पर मान्य पते के सेट को सीमित कर रहे हैं। यह कई साइटों के लिए ठीक है, लेकिन फिर आपको एक नए देश का समर्थन करने के लिए थोड़ा काम करना होगा।
  • शहर: यदि आप ऐसे डेटा के साथ काम कर रहे हैं, जहाँ संभावित रूप से शहर स्तर के नियम हैं (यानी शहर के आधार पर अलग-अलग तरह की कर दरें लागू होती हैं), तो आप इसे राज्य की तरह व्यवहार कर सकते हैं और ए CITYमान्य शहरों CITYऔर ADDRESSतालिकाओं के बीच एक विदेशी कुंजी संबंध के साथ तालिका। दूसरी ओर, यदि आप केवल एक उत्पाद वितरित करने की कोशिश कर रहे हैं और आप बहुत परवाह नहीं करते हैं यदि आपके टेबल में एक ही शहर के विभिन्न संस्करण हैं, तो उपयोगकर्ता को फ्री-फॉर्म दर्ज करने के लिए पर्याप्त है। बेशक, यदि आप विदेशी कुंजी जमा कर रहे हैं, तो आपके पास यह सुनिश्चित करने के लिए उचित मात्रा में काम होगा कि आपके पास सभी वैध मूल्य हैं। लेकिन ऐसे उत्पाद हैं जहां पूरे बिंदु यह है कि कंपनी ने पहले ही वह काम (यानी बिक्री कर डेटाबेस) कर दिया है।
  • फोन: आप फोन नंबर के साथ क्या कर रहे हैं और क्यों? कुछ एप्लिकेशन फ़ोन नंबरों को उस प्रारूप में लेना चाहेंगे, जिसमें उपयोगकर्ता उन्हें दर्ज करने का निर्णय लेता है और बाद के सभी प्रश्नों के लिए उस प्रारूप को संरक्षित करता है। यदि आप एक व्यक्तिगत पता पुस्तिका डिज़ाइन कर रहे हैं तो यह आम बात होगी जहाँ फ़ोन नंबर संग्रहीत और प्रदर्शित किए जाने के लिए उपयोगकर्ताओं की अपनी प्राथमिकताएँ होती हैं। अन्य एप्लिकेशन दर्ज किए गए स्वरूपण को अनदेखा करना चाहते हैं, केवल संख्यात्मक वर्ण निकालें, और फिर पुनर्प्राप्ति पर डेटा को प्रारूपित करें ताकि सभी फोन नंबर समान स्वरूपण हों। यदि आप व्यवसायों के लिए खानपान कर रहे हैं, तो आप उपयोगकर्ताओं को एक्सटेंशन दर्ज करने के लिए एक अलग क्षेत्र चाह सकते हैं। यदि आप एक आउटबाउंड कॉलिंग प्रक्रिया का समर्थन करने की कोशिश कर रहे हैं, तो आप अलग-अलग कॉलम में एरिया कोड और कंट्री कोड स्टोर कर सकते हैं क्योंकि आप '
  • लिंग: एक महान कई अनुप्रयोगों के लिए, एक तालिका में एक लिंग कोड ('एम' या 'एफ') को संग्रहीत करना पूरी तरह से उचित है। दूसरी ओर, ऐसे मामले हैं जब आप अतिरिक्त विकल्प (अन्य, इंट्रैक्स, ट्रांसजेंडर) चाहते हैं या जहां आपको जन्म के समय लिंग और वर्तमान लिंग जैसे कुछ स्टोर करने की आवश्यकता होती है।

दिलचस्प चीजों के बारे में सोचने के लिए बहुत से दिलचस्प जवाब - लेकिन लोगों को आगे बढ़ने में मदद करने के लिए किसी भी उपयोगी विचार का अभाव ... उदाहरण के लिए फोन की बात है एक बहुत ही सरल बात है जो कवर करेगी = = 80% मामलों में: वह संख्या जो आप टाइप कर सकते हैं फोन पर किसी के पास पहुंचने के लिए, शायद इसके अलावा कि यह अन्य देशों को भी कवर करे। तो हाँ, कुछ वर्णों की एक अंतर है अगर आप समझते हैं एक नंबर के बिना देश उपसर्ग / साथ हो सकता है, लेकिन वहाँ defintely है दुनिया की सबसे लंबी फोन नंबर की तरह एक बात है और इस का उपयोग कर के साथ साथ कुछ और अधिकांश के लिए बहुत सुरक्षित है मामलों
हेनिंग

24

आप नमूना डेटा और अपेक्षित दर्शकों के आधार पर भी अनुमान लगा सकते हैं। यह आपके स्थान पर निर्भर करता है।

कुछ नोट:

पते:

नाम:

फ़ोन नंबर: अंतर्राष्ट्रीय कोड, लंबाई, मोबाइल बनाम घर, मोबाइल को केवल नंबर की अनुमति दें


3
अंतिम दो लिंक ("अंतिम नाम पहले" और "सबसे लंबा क्या है ...") टूट गए हैं।
मार्क एल।

1
@MarcL। मैंने "अंतिम नाम पहले" लिंक तय किया (यदि मेरा संपादन स्वीकार किया जाता है)। "सबसे लंबा क्या है ..." SO प्रश्नों को "रचनात्मक नहीं" के रूप में बंद कर दिया गया है और हटा दिया गया है (आप अभी भी इसे देख सकते हैं यदि आपके पास 10k प्रतिनिधि है)।
कुल्हाड़ी।

2
: वेबैक मशीन "अंतिम नाम पहले" लेख है web.archive.org/web/20160823135055/http://www.solidether.net/...
Av Pinzur

10

उपरोक्त महान उत्तरों के अलावा, यूनिकोड वर्णों को स्वीकार करना न भूलें। सिर्फ इसलिए कि आप अमेरिका में हैं इसका मतलब यह नहीं है कि आप विदेशी पात्रों को अपने कॉलम में स्वीकार नहीं करना चाहते हैं।

उन्होंने कहा, मैं आमतौर पर नामों के लिए 50 वर्ण सुझाता हूं। एक ईमेल पते के लिए 320 पर्याप्त से अधिक होना चाहिए (आप सुनिश्चित करने के लिए एएनएसआई मानक की जांच कर सकते हैं)। 255 वर्णों के साथ सावधानी की ओर पते की त्रुटि के लिए। हालांकि आपको शायद कभी भी इस पते की आवश्यकता नहीं होगी कि आप सी / ओ लाइनों और उस तरह के सामान को शामिल कर सकते हैं। शहर बहुत बड़ा होना चाहिए, वहाँ कुछ बहुत लंबे शहर के नाम हैं। राज्य के लिए बाल तालिका के साथ जाना, देश के साथ भी। ज़िप कोड के लिए अंतर्राष्ट्रीय डाक कोड के बारे में मत भूलना जो यूएस ज़िप कोड से अधिक लंबे हैं। सिर्फ इसलिए कि आप अंतरराष्ट्रीय समर्थन नहीं करते हैं आप अभी भी हो सकते हैं। बहुत सारे अमेरिकी नागरिक हैं जो सैन्य लोगों सहित विभिन्न काउंटियों में रहते हैं।

यह मत भूलो कि राज्य वैकल्पिक होना चाहिए क्योंकि कई देशों में राज्य नहीं हैं।


अपने आखिरी प्रोजेक्ट पर, मुझे अंतरराष्ट्रीय डाक मानकों पर एक दस्तावेज़ मिला, जिसमें 39 को अधिकतम लाइन की लंबाई के रूप में दर्शाया गया था। फ्रांस में शहर के बाद जाने वाले बड़ी मात्रा में प्राप्तकर्ताओं के लिए एक अलग कोड है। मैं इस आकार के देश के 3 या 4 मुक्त प्रारूप क्षेत्रों की अनुमति दूंगा।
बिलथोर

9

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

ईमेल पता:

मिनट: 6 (ए। ए। एन।)। या 3 यदि आप स्थानीय डोमेन ईमेल पतों को
अधिकतम ट्रैक करना चाहते हैं : 320 254 (RFC)

एक ईमेल को मान्य करने के लिए कोड की मात्रा वास्तव में पागल है, तो चलो मान लें कि यह "@" है तो यह वैध है

आप एक ईमेल पते को "संचार विधि" के रूप में अमूर्त करना चाह सकते हैं, ताकि आप आसानी से उन सभी तरीकों को सूचीबद्ध कर सकें जिनके साथ उपयोगकर्ता को संवाद करना है।

लिंग

समय के साथ लिंग बदल सकता है, इसलिए आप ट्रैक कर सकते हैं कि यदि यह आपके लिए महत्वपूर्ण है। Http://en.wikipedia.org/wiki/ISO/IEC_5218 का अनुसरण करें

NOT_KNOWN(0),
MALE(1),
FEMALE(2),
NOT_APPLICABLE(9);

पते: NORAM

मैं सस्ता रास्ता निकालने वाला हूं और उत्तरी अमेरिकी पतों पर टिकूंगा।

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

भौगोलिक स्थिति :

id: int  
type: {country, division, county, city, indian reservation}  
name: varchar(45)  [1]
abbreviation: nullable varchar(4)  
parent_id: nullable int  

पता :

id: int  
postal_area_id: int, references GeographicArea  
county_or_city_id: int, references GeographicArea  
street_address: varchar(255)  
suite: nullable varchar(255)  

यदि आवश्यक हो तो लाइन 2, और लाइन 3 जोड़ें।

Http://en.wikipedia.org/wiki/Address_(geography) देखें

अब, एक पता एक पता है। कई लोग एक पते पर रह सकते हैं, और एक व्यक्ति के पास एक ही समय में और समय के साथ कई पते हो सकते हैं, इसलिए आपको इसके लिए कई-कई तालिका की आवश्यकता होती है।

PartyAddress

party_id: int references Party  
address_id: int references Address  
purpose: {home, work, ...}  

यदि समय के साथ ट्रैकिंग बंद हो जाए तो एक from_dateऔर अशक्त जोड़ें to_date

फोन नंबर

एक पार्टी में कई फोन नंबर हो सकते हैं और एक फोन नंबर का उपयोग कई लोग कर सकते हैं। फोन नंबर का उपयोग फैक्स, टेलीफोन कॉल, मोडेम आदि के लिए किया जा सकता है और इसमें एक्सटेंशन हो सकते हैं। ये सभी समय के साथ बदल सकते हैं।

फ़ोन नंबर

id: int  
value: varchar(15) - the max allowed by the ITU  

न्यूनतम 3 हो सकता है ("911" के लिए), या शायद 7 ("310-4NET"), जो एक विशेष प्रकार की स्थानीय संख्या है जो आपको क्षेत्र कोड डायल करने की अनुमति नहीं देती है)

यदि आवश्यक हो, तो आप इसे देश कोड में विभाजित कर सकते हैं।

आपको http://en.wikipedia.org/wiki/E.164 मानक का उपयोग करना चाहिए

PartyPhoneNumber

party_id: int references Party  
phone_number_id references PhoneNumber  
extension: nullable varchar(11) - ITU max  
purpose: {home, work, fax, modem, ...}  

नाम

नाम कठिन हैं। यहाँ पर क्यों:

  1. कुछ लोगों का कानूनी नाम केवल एक शब्द में है http://en.wikipedia.org/wiki/List_of_legally_mononymous_people

  2. कुछ लोगों के नाम कई शब्दों के साथ हैं http://en.wikipedia.org/wiki/Wolfe%2B585,_Senior

  3. कुछ लोगों के एक ही समय में कई नाम हैं (उदाहरण के लिए, मेरे विश्वविद्यालय में कई एशियाई छात्र हैं, लेकिन वे "अधिक पश्चिमी नाम" पसंद करते हैं)

  4. कभी-कभी, आपको समय के साथ लोगों के नामों को ट्रैक करने की आवश्यकता होती है, जैसे कि नाम और विवाहित नाम।

  5. आप कई अच्छे कारणों के लिए व्यक्तियों और संगठनों को सार करना चाहते हैं

    टेबल पार्टी (आईडी बिगसेरियल प्राथमिक कुंजी) बनाएं;

    टेबल पार्टी_नाम बनाएं (आईडी बिगसेरियल प्राइमरी की, पार्टी_आईडी बिगिंट नॉट रेफरेंस पार्टी (आईडी), टाइप स्मॉलिंट नॉट रेफरेंस पार्टी_name_type (आईडी) --elered, ex "maiden", "legal");

    तालिका name_component (id bigserial Primary key, party_name_id bigint not null reference party_name (id) बनाएँ, टाइप करें smallint not null reference name_component_type (id), --elered ex "दिए गए" name text not null);


3

पिछले उत्तरों की तुलना में थोड़ा अलग दृष्टिकोण से, और चूंकि LDAP , RFC 4519 के बारे में बात करना ठीक लगता है - "लाइटवेट डायरेक्ट्री एक्सेस प्रोटोकॉल (LDAP): स्कीमा फॉर यूजर एप्लिकेशन" रुचि का हो सकता है।

यदि आपके एप्लिकेशन को ऐसी निर्देशिका में मैप करने की आवश्यकता हो तो यह उपयोगी हो सकता है। अन्यथा, यह शायद आपकी आवश्यकताओं के अनुकूल नहीं है।

ये परिभाषाएँ केवल डेटा के बारे में अधिक हैं, वे कुछ ऑपरेटरों के बारे में भी हैं जिनका उपयोग खेतों पर किया जा सकता है। postalAddress, उदाहरण के लिए ए caseIgnoreListSubstringsMatch। मैं सुझाव नहीं दे रहा हूं कि आपको इस स्कीमा का सख्ती से पालन करना चाहिए, लेकिन सिद्धांतों को देखना दिलचस्प हो सकता है, विशेष रूप से आपको अपने आवेदन में नाम और पते की तुलना कैसे करनी पड़ सकती है, यह आपके डेटाबेस के डिजाइन के लिए प्रासंगिक हो सकता है।


3

नामों के बारे में, दोहरे उद्धरण चिह्नों का उपयोग करने पर विचार करें ताकि आपको आयरिश या इतालवी नामों (जैसे, ओ'हारा या डी'मैटो) में धर्मत्याग से बचना न पड़े।

मैं भी उपयोग करने के लिए नियमित एक्सप्रेशन का एक अच्छा सेट प्राप्त करने की सलाह दूंगा, ताकि आप अपने नाम फ़ील्ड के कुछ हिस्सों (जैसे, पहले प्रारंभिक, उपनाम, जूनियर / सीन, आदि) का उत्पादन कर सकें।


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