एक से अधिक 'अंतिम नाम' कैसे मॉडल करें?


11

स्पेनिश भाषी देशों में हम एक से अधिक अंतिम नाम का उपयोग करते हैं, जैसे:

पहला नाम r name अंतिम नाम
                पेड्रो आर्टुरो रॉड्रिग्ज लोयोला
        मध्य नाम ↗ ↖ (?)?

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


मैंने English.SE पर एक समान प्रश्न बनाया , इसमें कुछ अंतर्दृष्टि है कि दोनों मूल्यों को बनाए रखना क्यों महत्वपूर्ण है।


15
क्या कोई मामूली कारण है कि "अंतिम नाम" मान को रिक्त स्थान रखने की अनुमति नहीं दी जानी चाहिए? क्या आप वास्तव में कुछ उपयोग के मामलों में एक अंतिम नाम और दूसरों में सभी अंतिम नामों का उपयोग करना चाहते हैं? यदि नहीं, तो मैं समस्या को देखने में विफल हूं। "अंतिम नाम" को बिल्कुल उसी तरह छोड़ दें जैसे उपयोगकर्ता ने इसे दर्ज किया है और आप अच्छे हैं।
किलन फ़ॉथ

3
डच में "वैन डी आइट्स" प्रकार का नाम काफी सामान्य है। बस अंतिम नाम फ़ील्ड में रिक्त स्थान होने दें
शाफ़्ट फ्रीक

2
वहाँ एक कारण है कि आप सिर्फ एक nameक्षेत्र नहीं हो सकता है ?
asfallows

2
@asfallows: क्योंकि अगर हम एक मरीज की सूची प्रिंट करते हैं तो हमें उन्हें अंतिम नाम से सॉर्ट करना होगा। उदाहरण के लिए, यदि आपका नाम "जोस कार्लोस फर्नांडो अलमोडोवर सोतो" है, तो मुझे पहले से कैसे पता चलेगा कि "अल्मोडवार" यह पहला अंतिम नाम है?
पाब्लो ओल्मोस डी एगुइलेरा सी।

2
@FedericoPoloni: अंतिम नाम से कोई भी मरीज देख रहा है शायद रोगी का अंतिम नाम जानता है।
मूविंग डक

जवाबों:


19

प्रश्न: DBA की गणना कैसे होती है?

एक: 0, 1, कई

किसी व्यक्ति के पास 1 या अधिक दिए गए नाम और 1 या अधिक पारिवारिक नाम और संभवतः एक शीर्षक है। ये नाम उनके लिए एक आदेश है। यह स्थानीयकरण और संस्कृति पर निर्भर है कि किसी व्यक्ति को कैसे संदर्भित किया जाए।

ContactId
NamePart {"जॉन", "स्मिथ", ...}
NameType {शीर्षक, दिया, परिवार, ???}
आदेश {1, 2, 3, ...}

के लिए Pedro Arturo Rodríguez Loyola(# 1 से संपर्क करें), आपकी चार पंक्तियाँ होंगी:

1 / पेड्रो / दिया / 1
1 / आर्टुरो / दिया / 2
1 / रॉड्रिग्ज / परिवार / 3
1 / लोयोला / परिवार / 4

इस तरह यह किसी भी संरचना तक सीमित नहीं है, फिर भी वहाँ दिए गए संपर्क के लिए समझ में आता है। जब आप किसी के पास 3 या 4 दिए गए या परिवार के नाम हैं तो आप क्या करते हैं? या एक युवती का नाम?

ध्यान दें कि मैंने इस उत्तर के पिछले संशोधन से आदेश को बदल दिया है - आदेश नाम के प्रकार के बजाय केवल एक आदेश के बजाय पूरे नाम पर एक आदेश है क्योंकि कुछ संस्कृतियों में, परिवार का नाम पहले आता है, आपके पास विभाजन हो सकता है शीर्षक भागों "सर जॉन स्मिथ द्वितीय"।

अतिरिक्त पढ़ना


2
+1 लेकिन इस प्रोग्रामर ने कई ऑफशोर टीम के सदस्यों के साथ काम किया है, लेकिन मैंने अब तक जो सबसे लंबा नाम देखा है, वह अभी भी "पाब्लो डिएगो जोस फ्रांसिस्को डी पाउला जुआन नेपोमुकेनो मारिया डी लॉस रेमेडियोस क्रिस्पिनियानो डी ला सेंटीमा ट्रिनिडाड रुइज़ वाई पिकासो" है। बाल शोषण या नहीं?
इलियट फ्रिश

@Darkhogg utnapistim के पास अपने उत्तर में यह पहला 'दिस' लिंक है। इसके उन 'निश्चित मार्गदर्शकों' में से एक है।

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

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

1
@ जब कोई एप्लिकेशन परिवार के नाम से छांटने के लिए कॉल करता है या अस्पताल में (या इसके विपरीत) एम्बुलेंस से किसी मरीज को स्थानांतरित करने के लिए एक पुराने EDI सिस्टम के साथ इंटरफेस करने की कोशिश करता है, या बाहर भरने पर एक मुक्त पाठ क्षेत्र अच्छी तरह से काम नहीं करता है। विभिन्न बीमा दावों के रूपों में उपयुक्त क्षेत्र। ये सभी प्रमुख क्षेत्र हैं जहां डेटा का एक सा होना आसान है जो कि नाम के प्रत्येक भाग को इस तथ्य से निर्दिष्ट करने की कोशिश करने की तुलना में नाम के प्रत्येक भाग को डिजाइन करता है। एक मुक्त पाठ क्षेत्र अच्छा है, लेकिन कभी-कभी यह अन्य प्रणालियों के साथ काम करने का विकल्प नहीं है।

10

यह मदद कर सकता है। पोस्ट हास्यपूर्ण है, लेकिन असंवेदनशील है।

[पहला नाम] [अंतिम नाम] नामों के लिए एक सार्वभौमिक नियम नहीं है। यह आम है जहाँ आप रहते हैं। यदि आप इसमें नियम लागू करते हैं, तो जल्द या बाद में आपके पास ऐसे लोग होंगे जो आपके सिस्टम में नहीं जोड़े जा सकते हैं।

मूल रूप से, सुनिश्चित करें कि आप संभव के रूप में कुछ प्रतिबंध लगाते हैं, और वास्तविक संग्रहीत नाम और किसी भी अतिरिक्त लोगों के बीच लचीलेपन की अनुमति देते हैं।

मैं कुछ इस तरह के साथ जाना होगा:

  • प्रदर्शन नाम (प्रपत्र / डेटा दिखाते समय सुसंगत नामों के लिए): (होना चाहिए [पहला] [अंतिम])।
  • अन्य नाम / पूर्ण नाम (खोज के लिए, अधिक सटीक मिलान, आदि)। यहां, उपयोगकर्ता को दी गई लंबाई तक कुछ भी लिखने की अनुमति दें; लंबाई आपके हिसाब से अधिक होनी चाहिए, पर्याप्त रूप से पर्याप्त होनी चाहिए - जैसे अगर आपको लगता है कि 40 अक्षर पर्याप्त होने चाहिए, 500 :) डाल दें।
  • संबोधन (श्री, श्रीमती, सुश्री, जूनियर, सीनियर, -सान, कस्टम वैल्यू (जैसे तोव। आदि)।
  • आंतरिक आईडी (यह आईडी विशिष्ट रूप से आपके एप्लिकेशन के प्रत्येक व्यक्ति की पहचान करना चाहिए, नाम टकराव को रोकती है)।

उदाहरण के लिए, ज्यादातर यूरोपीय भाषाओं में मेरा नाम सही ढंग से लिखने योग्य नहीं है, रोमानियाई-विशिष्ट डिक्टिटिक्स के कारण (इसलिए, जब भी मैं अपना नाम अपने देश के बाहर लिखता हूं, तकनीकी रूप से मैं इसे गलत तरीके से लिखता हूं - ताकि लोग इसे पढ़ सकें और उच्चारण कर सकें)।

कुछ दिलचस्प नाम उदाहरण और लिंक:

http://en.wikipedia.org/wiki/Nicholas_Barbon

http://en.wikipedia.org/wiki/Prince_%28musician%29

http://en.wikipedia.org/wiki/P_diddy

http://en.wikipedia.org/wiki/Burmese_name


एक और बात पर विचार करना है। अक्सर लोगों की सूची को उनके अंतिम नाम (या केवल नाम, या अंतिम नाम, आदि में पहला शब्द) द्वारा क्रमबद्ध करने के लिए वांछनीय है। यदि एप्लिकेशन को ऐसा करने की आवश्यकता है, तो हमें उनके "सॉर्टिंग नाम" की पहचान करने के कुछ तरीके की आवश्यकता है।
बेनएम

लेकिन मुझे यह विचार पसंद है। सांस्कृतिक मान्यताओं के आधार पर नामों का प्रतिनिधित्व करने के बजाय, हम उन्हें उन कार्यों के आधार पर प्रतिनिधित्व करते हैं जो उन्हें सिस्टम में प्रदर्शन करने की आवश्यकता होती है।
BenM

मुझे आपका जवाब पसंद है। मुझे समझ नहीं आ रहा है कि यह कैसे नाम रखने में मेरी मदद कर सकता है। मुझे उन्हें उदाहरण के लिए क्रमबद्ध करने की आवश्यकता है, हम सामान्य रूप से अंतिम नाम का उपयोग करते हैं। उन्हें "अन्य नामों" या "प्रदर्शन नाम" नामक फ़ील्ड / स्तंभ पर कैसे रखा जा सकता है, उदाहरण के लिए मेरी मदद कर सकता है? हालांकि, ब्यूरो नाम के लिए यश। बहुत बढ़िया।
पाब्लो ओल्मोस डी एगुइलेरा सी।

@pablox, मेरा कहना यह था कि वैचारिक रूप से, आपको किसी व्यक्ति के नाम को पहचान के रूप में नहीं मानना ​​चाहिए, लेकिन पहचान के लिए मेटाडेटा के रूप में (और आईडी एक अद्वितीय कोड होना चाहिए)। आप अपने आवेदन की जरूरतों के अनुसार, उस मेटाडेटा को व्यवस्थित मान सकते हैं। उदाहरण के लिए, आप "नाम टोकन के समूह" में दूसरे नाम (यदि कोई हो) के लिए "सॉर्टिंग नाम" की भूमिका चुन सकते हैं, तो पहले टोकन के रूप में "प्रदर्शन नाम" की भूमिका, और "एड्रेसिंग नाम" की भूमिका के रूप में "डॉ। श्री | सुश्री | आदि" + "प्रदर्शन नाम"।
utnapistim

नामों की छंटाई आम तौर पर "टेलीफोन बुक छँटाई" होने वाली है, जहाँ आप नाम के विभिन्न उपांगों को अनदेखा करते हैं और महत्वपूर्ण भाग पर छाँटते हैं। जैसे, "वैन डे बोगार्ट" को "बोगार्ट" पर छाँटा जाएगा, न कि "वैन" को। एक मल्टीपार्ट हिस्पैनिक नाम कैसे संभाला जा रहा है, यह सांस्कृतिक रूप से निर्भर होने वाला है - इसका उपयोग कहां किया जा रहा है और इसका उपयोग किस तरह से फिट बैठता है।
फिल पेरी

0

यह कोई जटिल बात नहीं है ..... या मुझे कुछ याद आ रहा है।

ये क्षेत्र हैं: name(varchar), lastname(varchar)।

फिर पूरा नाम भरने के लिए एक फॉर्म, उदाहरण: Jorge Patricioऔर अंतिम नाम Pèrez Gonzáles

खोज में, आपके पास कई तुलना ऑपरेटर हैं, उदाहरण के लिए MySQL में, जैसे likeकि आपको देखने में मदद करेगा।

अधिकतर रचित अंतिम नाम हमेशा क्रम में होते हैं। Pérez Gonzálezज्यादातर अपना अंतिम नाम इस तरह से कहते हैं, न कि उलटे क्रम में।

आप अपने डेटाबेस को अन्य तरीके से ओवर-डिज़ाइन करेंगे।


1
अगर परिवार का नाम पहले दिया जाए तो क्या होगा? लिंक

1
@ मिचेल, इसके बारे में क्या? मूल्य की किसी भी घटना के लिए फ़ील्ड और खोज नाम और अंतिम नाम तालिका में खोज करें। हमेशा आपको लगता है कि आपके पास एक Google जैसा खोज क्षेत्र है, दूसरे आप केवल "नाम:" और "अंतिम नाम:" जैसे एक रूप रख सकते हैं
JorgeeFG

0

व्यक्तिगत नाम तीन प्रकार के होते हैं: पोलिन्यूअम (कई घटकों के नाम), मोनोनियम (केवल एक घटक, पूर्व "चेर" के नाम ( ) और पोट्रिमनीम्स (चित्रों द्वारा दर्शाए गए नाम, पूर्व कलाकार )।

एक व्यक्ति के कई नाम हो सकते हैं, भूमिका निभा सकते हैं , उदाहरण के लिए कानूनी नाम, और पसंदीदा नाम।

एक बहुपद में कई घटक होते हैं, जिनमें से दिए गए नाम और उपनाम की आवश्यकता होती है। कुछ प्रकार के उपनाम हैं:

  1. नियमित उपनाम (जोन्स)
  2. डबल-बैरल्ड उपनाम ("वॉन विलियम्स" या "लुई-ड्रेफस")
  3. ट्रू कम्पाउंड सरनेम {दिए गए नाम: "जुआन पाब्लो" उपनाम: "फर्नांडीज डी काल्डेरोन", द्वितीयक उपनाम: "गार्सिया-इग्लेसियस"}

3 महत्वपूर्ण है क्योंकि उन्हें श्री फर्नांडीज डी कैल्डेरोन के रूप में संबोधित किया जाएगा , न कि श्री फर्नांडीज डी कैल्डेरोन गार्सिया-इग्लेसियस।

तो मूल रूप से, एक अनिवार्य उपनाम क्षेत्र और एक अशक्त गौण क्षेत्र है।


0

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

ऑड्स आपका सिस्टम केवल वास्तव में किसी के लिए सबसे अधिक चार "नामों" की परवाह करता है:

  1. एक प्रदर्शन नाम जो उन्हें यह जानने की अनुमति देता है कि वे सिस्टम में लॉग इन हैं।
  2. एक अनौपचारिक नाम जिसके द्वारा आप उन्हें एक फोन कॉल पर संबोधित करेंगे।
  3. एक औपचारिक नाम जिसके साथ आप पत्राचार पर उनका उल्लेख करेंगे।
  4. एक क्रमबद्ध नाम जो # 2 को इस तरह से व्यक्त करता है कि यह एक सूची में आदेश दिया जाएगा।

कई सिस्टम बस # 1 और # 2 के लिए किसी के औपचारिक नाम का उपयोग करेंगे, केवल उन नामों को छोड़ देंगे जिनके बारे में आप "उपयोगकर्ता के नाम का एक स्ट्रिंग" और "एक स्ट्रिंग का प्रतिनिधित्व करते हैं जो पूर्व को कैसे सॉर्ट किया जाना चाहिए।"

डेटा मॉडलिंग के नजरिए से, केवल उन मूल्यों को परिभाषित करें जिनकी आपको वास्तव में आवश्यकता होगी। इन मूल्यों के भंडारण को अनुकूलित करने के लिए सबसे अच्छा कैसे एक कार्यान्वयन विवरण है - एक जिसे आप केवल ओवर-ऑप्टिमाइज़ करने के लिए सिरदर्द का कारण बनेंगे। (निश्चित रूप से, आप "पहले नाम और अंतिम नाम को स्टोर कर सकते हैं", लेकिन आप किसी ऐसे व्यक्ति के लिए क्या करेंगे, जिसके पास केवल एक ही नाम है? "


-1

आइए इस पर दूसरे तरीके से विचार करें।

आपके सिस्टम को अन्य प्रणालियों से कनेक्ट करना होगा, इससे कोई फर्क नहीं पड़ता कि आप कितने लचीले हैं यदि वे नहीं हैं। तो क्या सिस्टम को आपके साथ डेटा ट्रांसफर करना है?

जब मैं अपने डॉक्टर को अपॉइंटमेंट के लिए फोन करता हूं तो वे मुझसे मेरी जन्मतिथि पूछते हैं, फिर सिस्टम उन्हें मैच करने वाले लोगों की सूची दिखाता है, फिर वे मुझसे मेरा नाम पूछते हैं, अंत में मेरा पता पूछने के लिए पूछते हैं कि उन्होंने चयन किया है सही व्यक्ति।

डॉक्टर को मुझसे बात करते समय नाम पता जानना होगा; यदि वे मुझे लिखते हैं तो उन्हें एक पत्र पर रखने के लिए भी नाम जानना होगा।

इसलिए केवल एक ही पाठ क्षेत्र नहीं है जो रिक्त स्थान की अनुमति देता है। अंतिम नाम से पहले को अलग करने का कोई कारण नहीं है, जब तक कि आप उन्हें उसी तरह से संसाधित नहीं करेंगे।


3
आप बीमा क्लेम पर एक फॉर्म भर रहे हैं। इसका "अंतिम नाम" है। वह व्यक्ति जापान का है। जब आपके पास अनुवादित संस्करण है, तो आपको फ़ील्ड में उचित पारिवारिक नाम रखने की आवश्यकता है। कौन सा शब्द है?

@ मिचेल्ट, क्या कहें कि हर किसी का पारिवारिक नाम है?
इयान

2
जापान के एक व्यक्ति (या कई अन्य पूर्वी नामकरण देशों से परिवार का नाम प्राप्त करने से पहले नाम दिया जाता है। इसे इसी तरह संबोधित किया जाता है। हालांकि, मेडिकल फॉर्म भरते समय व्यक्ति को परिवार के नाम और दिए गए नाम की आवश्यकता हो सकती है) फ़ील्ड - आप एक फ़ील्ड को कैसे लेते हैं और उचित फ़ील्ड से मेल खाते हैं? दिया गया दूसरा उदाहरण है यदि आप परिवार के नाम पर छंटनी कर रहे हैं और "जोस कार्लोस फर्नांडो अल्मोडोवर सोतो" दिया गया है, तो आपको इसके Almodóvarबजाय सॉर्ट करने की आवश्यकता है Fernando

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