मुझे एक तालिका का नाम क्या देना चाहिए जो दो तालिकाओं को एक साथ मैप करती है? [बन्द है]


137

मान लें कि मेरे पास दो टेबल हैं:

Table: Color
Columns: Id, ColorName, ColorCode

Table: Shape
Columns: Id, ShapeName, VertexList

मुझे उस तालिका को क्या कहना चाहिए जो आकार को रंग देती है?

Table: ???
Columns: ColorId, ShapeId

समरूपता के लिए ColorShape और ShapeColor उर्फ।
लुकलेड

2
मैं अभी भी एक ऐसे ही सवाल पर आया था जो मैंने पहले नहीं देखा था: stackoverflow.com/questions/1764483/… । कि धागे से कुछ अन्य विचार: Shape2Color, ShapeXColor, ShapeColorLink
देवदूत 22

यदि नामकरण तालिका का एक मानक था - तो यह opnion आधारित नहीं होगा। तब वह सवाल का जवाब होता। प्रश्न को बंद करके आप अपने जैसे किसी व्यक्ति के लिए पता करने के लिए कब्जे को बंद कर देते हैं कि आपके जंक्शन टेबल के नामकरण के मानक तरीके हैं या नहीं। कृपया पुनर्विचार करें - इसे बंद करने वाले ...
Lealo

जवाबों:


187

कंप्यूटर विज्ञान में केवल दो कठिन चीजें हैं: कैश अमान्य और नामकरण की चीजें
- फिल कार्लटन

एक many-to-manyसंबंध के लिए एक अच्छे नाम के साथ आने से रिश्ते को पढ़ने और समझने में आसानी होती है। कभी-कभी एक महान नाम ढूँढना तुच्छ नहीं है, लेकिन आमतौर पर इसके बारे में सोचने में कुछ समय बिताने के लायक है।

एक उदाहरण: Readerऔर Newspaper

A के Newspaperपास कई Readersऔर a Readerके कई हैंNewspapers

आप रिश्ते को बुला सकते हैं, NewspaperReaderलेकिन एक नाम Subscriptionबेहतर बता सकता है कि तालिका किस बारे में है।

नाम उस स्थिति में Subscriptionभी अधिक मुहावरेदार है जब आप तालिका को बाद में ऑब्जेक्ट में मैप करना चाहते हैं।

many-to-manyतालिकाओं के नामकरण के लिए सम्मेलन दोनों तालिकाओं के नामों का एक संयोजन है जो संबंध में शामिल हैं। ColourShapeआपके मामले में एक समझदार डिफ़ॉल्ट होगा। उस ने कहा, मुझे लगता है कि निक डी दो महान सुझावों के साथ आए : Styleऔर Texture


10
+1: अच्छी तरह से कहा - अब एक सावधानी से चुना गया नाम भविष्य में स्थिरता को बहुत आसान बना देगा।
प्रीत संघ

115
"कंप्यूटर विज्ञान में केवल दो कठिन चीजें हैं: कैश अमान्यकरण, नामकरण की चीजें और ऑफ-बाय-वन त्रुटियां"
नील मैक्गुइगन

1
मान लीजिए, यदि उत्पादों के लिए एक श्रेणी है और नुस्खा के लिए दूसरी श्रेणी है। दोनों तालिकाओं के लिए हमारे पास recipe_categories और product_categories होंगे, और चूंकि हम संघर्ष को रोकने के लिए दोनों तालिकाओं के लिए "श्रेणियां" तालिका का नाम नहीं दे सकते हैं, इसलिए उत्पाद और नुस्खा के लिए जंक्शन टेबल "recipe_recipe_ategories" और "product_product_categories" होंगे
c9s

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

35

कैसे ColorShapeMap या शैली या बनावट के बारे में


5
+1 टेबल के नामों में शामिल होने की तुलना में अधिक सुरुचिपूर्ण कुछ के साथ आने के लिए
tosh

22

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

मैंने इन टेबल चौराहों को आम तौर पर टेबल कहा ।

नामकरण सम्मेलनों के संदर्भ में, ज्यादातर लोग एक नाम देते हैं जो कई-से-कई संबंधों में दो तालिकाओं का एक मिश्रण है। तो इस मामले में, " ColorShape" या " ShapeColor।" लेकिन मुझे लगता है कि यह कृत्रिम और अजीब लग रहा है।

जो सेल्को ने कुछ प्राकृतिक भाषा में इन तालिकाओं के नाम के लिए अपनी पुस्तक "एसक्यूएल प्रोग्रामिंग स्टाइल" की सिफारिश की है। उदाहरण के लिए, यदि कोई रंग द्वारा आकृति बनाई गई है, तो तालिका को नाम दें ColoredBy। तब आपके पास एक आरेख हो सकता है जो कम या ज्यादा स्वाभाविक रूप से इस तरह से पढ़ता है:

Shape <-- ColoredBy --> Color

इसके विपरीत, आप कह सकते हैं एक रंग रंग एक आकार:

Color <-- Colors --> Shape

लेकिन ऐसा लगता है कि मध्य तालिका Colorएक बहुवचन नामकरण सम्मेलन के समान है। बहुत भ्रामक।

ColoredByनामकरण सम्मेलन का उपयोग करने के लिए संभवतः सबसे स्पष्ट है । दिलचस्प है कि निष्क्रिय आवाज का उपयोग करने से नामकरण सम्मेलन अधिक स्पष्ट हो जाता है।


बिल, धन्यवाद। बहुत दिलचस्प जवाब।
devuxer

@ बिल: पर्यायवाची शब्दों के बारे में सब, और पर्यायवाची वरीयता नामकरण सम्मेलन को प्रभावित करती है।
ओएमजी पोनीज

2
मुझे लगता है HasColorकि चौराहे की मेज के लिए एक और संभावित नाम हो सकता है जो प्राकृतिक भाषा का उपयोग करता है।
बिल कार्विन

1
@Bill: नामकरण सम्मेलन के साथ मुझे जो समस्या है, वह क्या है hasColour/ ColouredByक्या है? यह नामकरण के उद्देश्य को पराजित करता DESCRIBEहै ताकि रिश्तों का पता लगाने के लिए उपयोग किया जा सके।
ओएमजी पोनीज

5
ओएमजी पोंजी की टिप्पणी के समान, यदि अन्य चीजों का रंग हो सकता है तो क्या होगा? अगर मेरे पास एक और टेबल है जो टेक्स्ट टू कलर को मैप करता है, तो मुझे एक अद्वितीय नाम की आवश्यकता होगी। हो सकता है कि ShapeHasColorऔर TextHasColor?
devuxer

20

जब तक यह जानकारीपूर्ण हो, तब तक तालिका को नाम दें, जो आपको पसंद है:

COLOR_SHAPE_XREF

एक मॉडल के नजरिए से, तालिका को एक सम्मिलित / कोरोलरी / क्रॉस संदर्भ तालिका कहा जाता है। मैंने _XREFसंबंध स्पष्ट करने के लिए अंत में उपयोग करने की आदत को बनाए रखा है।


1
मैं भी _XREF का उपयोग करता हूं ... यह हमेशा मेरे लिए समझ में आता है।
जेम्स क्रोनेन

मैं विचार खोदता हूं, लेकिन एक ऑटोकैड उपयोगकर्ता के रूप में मुझे _XREF की तुलना में एक अलग प्रत्यय खोजने की जरूरत है ...
माइक

7

यह एक सहयोगी संस्था है और अपने आप में अक्सर महत्वपूर्ण है।

उदाहरण के लिए, TRAINS और TIMES के बीच कई संबंध एक TIMETABLE को जन्म देते हैं।

यदि कोई स्पष्ट नई इकाई (जैसे समय सारिणी) नहीं है, तो सम्मेलन दो शब्दों को एक साथ चलाने के लिए है, COLOUR_SHAPE या समान दे।


6

एक मानचित्रण तालिका वह है जिसे आमतौर पर कहा जाता है।

ColorToShape
ColorToShapeMap

दरअसल, मैपिंग शब्द का इस्तेमाल आम तौर पर तब किया जाता है जब संबंध यूनी-डायरेक्शनल (एक से एक या कई) होता है क्या यह कासवे है? यदि ऐसा है, तो आम तौर पर आप एक और तालिका की जरूरत नहीं है। यदि रंग हमेशा आकार निर्धारित करता है, तो रंग तालिका में एक आकृति स्तंभ जोड़ें, या इसके विपरीत। एक अतिरिक्त तालिका आम तौर पर केवल तभी आवश्यक होती है जब संबंध कई से कई हों .. और उस मामले में शब्द मैपिंग उचित नहीं है।
चार्ल्स ब्रेटाना

इस मामले में, किसी भी आकार को किसी भी रंग से मिलान किया जा सकता है, इसलिए यह कई-से-कई है।
devuxer

2
BTW, यह एक मानचित्रण तालिका है या नहीं, मुझे Toनाम में उपयोग करने का विचार पसंद है । क्या होगा अगर आपके पास हाईलाइटकोलर के साथ शेप है। यदि आप इसे कहते हैं ShapeHighlightColor, तो यह थोड़ा अस्पष्ट है कि क्या यह एक शेपहैलाइट को रंग में मैप किया गया है या हाइपर रंग के लिए एक आकार मैप किया गया है। तो, ShapeToHighlightColorऔर अधिक स्पष्ट हो सकता है।
19

FYI करें: Oracle (9i / 10g anyways) में तालिका नामों के लिए 32 वर्ण की सीमा है, इसलिए आप बहुत चिंतित नहीं हो सकते ।
ओएमजी पोनीज़ 19

मैंने उत्तर का उपयोग ऊपर किया है लेकिन थोड़ा अलग तरीके से। यानी Color_Shape_Map। कन्वेंशन: Table1_Table2_Map
गोल्डफिश

6

मैंने DBA के साथ काम किया है जो इसे जॉइन टेबल कहते हैं

Colour_Shape काफी विशिष्ट है - जब तक कि रिश्ते का एक स्पष्ट डोमेन-विशिष्ट नाम न हो।


1
मुझे अंडरस्कोर पसंद नहीं है क्योंकि वे विदेशी प्रमुख नामकरण सम्मेलनों के साथ संघर्ष करते हैं जैसे कि आप जैसे नाम Colour_Shape_Colourऔर बुरा नामों के साथ समाप्त होते हैं Colour_Shape_Shape
दान बेचार २hard

4

मैं आमतौर पर सुनता हूं कि एक जंक्शन टेबल कहा जाता है। मैं उस तालिका को नाम देता हूं जो इसमें शामिल होती है, इसलिए आपके मामले में या तो ColorShape, या ShapeColor। मुझे लगता है कि शेप के लिए कलर की तुलना में कलर का होना ज्यादा मायने रखता है, इसलिए मैं साथ जाऊंगा ShapeColor


4

Junction table

या Bridge Table

या Join Table

या Map Table

या Link Table

या Cross-Reference Table

यह तब उपयोग में आता है जब हम कई-कई रिश्तों के लिए जाते हैं, जहां दोनों तालिकाओं की कुंजियां जंक्शन तालिका की संयुक्त प्राथमिक कुंजी बनाती हैं।


4

मैं संस्थाओं के नामों के संयोजन का उपयोग करने और उन्हें बहुवचन में रखने की सलाह देता हूं। इस प्रकार तालिका का नाम कनेक्शन "कई-से-कई" व्यक्त करेगा।

आपके मामले में:

रंग + आकृति = रंगशैली


यदि आप "तालिकाओं के नाम" मार्ग पर जा रहे हैं, तो यह बेहतर है क्योंकि एकवचन संस्करण "आमतौर पर" एक नामांकित तालिका होगी।
एंड्रयू Haust

3

इंटरमीडिएट टेबल या ज्वाइन टेबल

मैं आपकी पसंद के आधार पर इसे "ColorShapes" या "ColorShape" नाम दूंगा


3

मैंने भी शब्द का उपयोग किया है साहचर्य तालिका।

आपकी तालिका के लिए एक नाम का ColorShapeAssociationsअर्थ यह हो सकता है कि प्रत्येक पंक्ति उस रंग और उस आकृति के बीच एक संघ का प्रतिनिधित्व करती है। एक पंक्ति के अस्तित्व का अर्थ है कि रंग उस आकार में आता है, और यह आकार उस रंग में आता है। एक विशिष्ट रंग के साथ सभी पंक्तियों में सभी आकार का सेट होता है जिस रंग के साथ जुड़ा होता है, और एक विशिष्ट आकार के लिए पंक्तियाँ सभी रंगों का सेट होती हैं जो आकार में आते हैं ...


लेकिन आप वास्तविक तालिका को क्या नाम देंगे?
देवदूत

यह इस बात पर निर्भर करता है कि तालिका क्या वर्णन कर रही है। यदि यह कहता है कि 'कुछ भी नारंगी होना चाहिए', 'बैंगनी कुछ भी होना चाहिए', आदि, तो आप इसे एक बात कह सकते हैं (Colour_of_Shape, शायद)। यदि यह शिथिल परिभाषा है - आकृतियों के लिए ज्ञात रंग, एकल आकार को कई बार प्रदर्शित करने की अनुमति देता है - तो शायद 'Shape_Colour.Map'।
जोनाथन लेफ़लर

2

सामान्य तौर पर अधिकांश डेटाबेस में अनुक्रमित, प्राथमिक कुंजी और आगे के लिए किसी प्रकार का नामकरण सम्मेलन होता है। PostgreSQL में निम्नलिखित नामकरण का सुझाव दिया गया है:

  • प्राथमिक कुंजी: tablename_columnname_ pkey
  • अद्वितीय बाधा: tablename_columnname_ कुंजी
  • अनन्य बाधा: tablename_columnname_ excl
  • अन्य उद्देश्यों के लिए सूचकांक: tablename_columnname_ idx
  • विदेशी कुंजी: tablename_columnname_ fkey
  • अनुक्रम: tablename_columnname_ seq
  • ट्रिगर्स: tablename_actionname_after | before_ ट्रिग

आपकी तालिका मेरे लिए एक लिंक की गई तालिका है। ऊपर दिए गए नामकरण के अनुरूप रहने के लिए मैं निम्नलिखित चुनूंगा:

  • लिंक की गई तालिका: tablename1_tablename2_ lnk

तालिका ऑब्जेक्ट की सूची में लिंक की गई तालिका tablename1 के बाद होगी। यह नेत्रहीन अधिक आकर्षक हो सकता है। लेकिन आप एक नाम भी चुन सकते हैं जो लिंक के उद्देश्य का वर्णन करता है जैसे कि अन्य ने सुझाव दिया है। यह आईडी कॉलम का नाम छोटा रखने में मदद कर सकता है (यदि आपके लिंक का अपना नाम आईडी होना चाहिए और अन्य तालिकाओं में संदर्भित है)।

  • या पसंद की तालिका: purposename_ lnk

1
अच्छा राजभाषा 'हंगेरियन अंकन, हम फिर से मिलते हैं।
दान बेचार २hard

1

मैं हमेशा "हैम्बर्गर टेबल" शब्द के लिए आंशिक रहा हूं। पता नहीं क्यों - यह सिर्फ अच्छा लगता है।

ओह, और मैं टेबल शेपकलर या ColorShape को कॉल करेगा, जिसके आधार पर अधिक सामान्यतः उपयोग की जाने वाली तालिका है।


1

"कई और कई" तालिका। मैं इसे "ColourShape" या इसके विपरीत कहूंगा।


1

इस के रूप में मनमाने ढंग से कुछ का जवाब देना मुश्किल है, लेकिन मैं अंतर्निहित रिश्तों के कुछ सामान्य विवरण के बजाय वास्तविक डोमेन में कुछ के बाद नामकरण के विचार को तरजीह देता हूं।

काफी बार इस प्रकार की तालिका डोमेन मॉडल के लिए कुछ समृद्ध में विकसित होगी और लिंक की गई विदेशी कुंजियों से ऊपर और परे अतिरिक्त विशेषताओं को ले जाएगी।

उदाहरण के लिए, क्या होगा अगर आपको रंग के अलावा बनावट को स्टोर करने की आवश्यकता है? इसकी बनावट को धारण करने के लिए SHAPE_COLOR तालिका का विस्तार करना थोड़ा मजेदार लग सकता है।

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

उस सब ने कहा, मैं इसे सर्फ़ कहता हूँ अगर मुझे यह पता होता कि बाद में शुरू की गई अतिरिक्त सतह जैसी संपत्तियाँ होंगी। यदि नहीं, तो मुझे कोई समस्या नहीं है इसे SHAPE_COLOR या कुछ और तरह से और अधिक दबाव डिजाइन समस्याओं पर आगे बढ़ना है।


1

शायद बस ColoredShape ?

मुझे यकीन नहीं है कि मुझे सवाल मिलेगा। क्या यह इस विशिष्ट मामले के बारे में है या आप सामान्य दिशानिर्देशों की तलाश कर रहे हैं?


0

मैं इसे तालिकाओं के सटीक नामों के साथ नाम दूंगा = ColorShape।


0

डेवलपर कला से संबंधित है के अनुरूप

ColorShape

एक सामान्य नामकरण सम्मेलन होगा। ईआर आरेख में, यह एक संबंध होगा।


0

इसे क्रॉस रेफरेंस टेबल कहें।

XREF_COLOR_SHAPE
(
     XCS_ID INTEGER
     C_ID   INTEGER
     S_ID   INTEGER
)

0

मैं इसका उपयोग करूँगा r_shape_colorsया r_shape_colorइसके अर्थ पर निर्भर करता हूँ। इस मामले में
r_एक प्रतिस्थापन होगा xref_


0

मेरा वोट एक ऐसे नाम के लिए है जो तालिका का सबसे अच्छा वर्णन करता है। इस मामले में यह हो सकता है ShapeColorलेकिन कई मामलों में एक सहमति से अलग एक नाम बेहतर है। मुझे पठनीयता पसंद है और मेरे लिए , इसका मतलब है कि कोई प्रत्यय, कोई अंडरस्कोर और कोई उपसर्ग नहीं है।


0

मैं व्यक्तिगत तौर पर Colour_Shape के लिए जाऊंगा, अंडरस्कोर के साथ: सिर्फ इसलिए कि मैंने इस सम्मेलन को काफी हद तक देखा है। [लेकिन अन्य पदों के साथ यहाँ सहमत हूँ कि ऐसा करने के संभवतः अधिक 'काव्यात्मक' तरीके हैं]।

इस बात को ध्यान में रखें कि इस ज्वाइन टेबल पर विदेशी चाबियां भी बनाई जानी चाहिए, जो कलर और शेप टेबल दोनों को संदर्भित करती हैं, जो रिश्ते को पहचानने में भी मदद करेगी।


0

एक अधिवेशन मुझे उन तालिकाओं में शामिल होने के लिए बहुत कुछ दिखाई देता है जो मुझे व्यक्तिगत रूप से 'Colour_v_Shape' पसंद हैं, जिन्हें मैंने 'बनाम टेबल' के रूप में बोलचाल में सुना है।

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

इस तरह से करने पर, आपको 'Butter_v_Milk' और 'Buttermilk' - कोई भ्रम नहीं होगा।

इसके अलावा, मुझे लगता है कि मूल प्रश्न में एक फू फाइटर्स संदर्भ है।

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