2009-06-19 12 views
8

मैं डेटाबेस डिज़ाइन कर रहा हूं और हाल ही में एक टेबल डेऑफविक में एक कॉलम नामित कर रहा हूं, पूरी तरह से भूल जाता हूं कि DayOfWeek SQL सर्वर में एक अंतर्निहित फ़ंक्शन है। अब मैं यह तय कर रहा हूं कि मुझे इसे छोड़ना चाहिए और स्क्वायर ब्रैकेट [डेऑफविक] के साथ कॉलम को संदर्भित करना चाहिए या भविष्य में किसी भी टकराव से बचने के लिए कॉलम नाम बदलना चाहिए। मैं इस परियोजना में बहुत दूर नहीं हूं इसलिए इसे बदलना बहुत मुश्किल नहीं है। मेरे सिर में बहस यह है कि DayOfWeek का कॉलम नाम सिर्फ इसके उद्देश्य के लिए इतना समझ में आता है, इसलिए मैं वास्तव में इसका उपयोग करना चाहता हूं ... लेकिन यह एक आरक्षित शब्द है ... और भविष्य में दर्द का कारण बन सकता है (विशेष रूप से यदि कॉलम का संदर्भ देते समय मुझे हमेशा इसके चारों ओर स्क्वायर ब्रैकेट रखना पड़ता है)।क्या मुझे एक SQL सर्वर कीवर्ड को कॉलम नाम के रूप में उपयोग करना चाहिए?

हर कोई क्या सोचता है?

उत्तर

12

मैं इसे बदल दूंगा - मुझे उपयोगकर्ता नामक एक विरासत तालिका मिली है - यह हर समय स्क्वायर ब्रैकेट के साथ दर्द है। शायद यह DayOfWeekName या DayOFWeekId

जोश

+1

मैं इसे DayOfWeekId में बदल रहा हूं। यह वास्तव में बेहतर काम करता है क्योंकि मैं सप्ताह के दिन का प्रतिनिधित्व करने के लिए कॉलम में एक int संग्रह कर रहा हूं। मेरे पास एक बार डेटाबेस में उपयोगकर्ता नाम की एक टेबल भी थी और मैं इसे फिर से नहीं करूँगा। आरक्षित शब्दों के रूप में नामित सारणी निश्चित रूप से खराब चीजें हैं। मेरे सिर में बहस यह थी कि एक आरक्षित शब्द के रूप में एक कॉलम नाम ठीक था ... लेकिन जैसा कि हर कोई सुझाव देता है कि यह सिर्फ इसके लायक नहीं है (और आपने वैसे भी एक बेहतर नाम इंगित किया है)। धन्यवाद! –

0

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

0

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

0

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

पीएस मुझे याद है, कुछ बार मैं आपके जैसी स्थिति में था। लेकिन मुझे स्तंभ "ऑर्डर" के रूप में नामित किया गया था :-)

0

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

4

जेफ,

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

इसे नाम बदलने का वास्तव में कठिन हिस्सा नौकरी को सुरक्षित रूप से करने के लिए आवश्यक समझ प्राप्त कर रहा है। समझने में आप अद्वितीय (लेखक होने के नाते) हैं। यदि आपने नौकरी करने के लिए मुझसे पूछा (उदाहरण के लिए), तो शायद यह एक लागत प्रभावी व्यावसायिक प्रस्ताव नहीं होगा।

तो ... नहीं इसे फिर से ;-)

चियर्स करने के लिए चूसने वाला अपने आप को ... और +2 फिक्सिंग के लिए +1। कीथ।

+0

यह एक उत्कृष्ट बिंदु है ... अब मेरे लिए इसका नाम बदलना अपेक्षाकृत आसान है, और भविष्य में केवल कठिन हो जाएगा। प्रत्येक बार जब किसी को दो स्क्वायर ब्रैकेट टाइप करने की आवश्यकता होती है (या याद रखें कि उन्हें उन्हें टाइप करना है) और यह जल्दी से बहुत समय (और धन) में बदल जाता है। जोश ने सुझाव दिया कि मैं DayOfWeekId के साथ गया था। –

1

मैं हमेशा यह सुनिश्चित करता हूं कि मैं कभी भी किसी भी चर/ऑब्जेक्ट/फ़ंक्शन की शुरुआत के रूप में किसी कीवर्ड का उपयोग नहीं करता क्योंकि आप कभी भी सुनिश्चित नहीं हैं कि आपकी लक्षित भाषा इसे पसंद करेगी या नहीं। यह अक्सर निराशाजनक त्रुटियों को उत्पन्न कर सकता है जो ट्रैक करने में थोड़ी देर लगते हैं। यहां तक ​​कि अगर सिंटैक्स जांच इसे उठाती है, तो इसका मतलब है कि यदि आप FurryKitten जैसे अलग नाम थे तो आप अधिक समय बर्बाद कर चुके हैं।

मैं DayOfWeek से बचूंगा और एक पूरी तरह से अलग कुछ चुन सकता हूं, शायद Weekday या DayName। यह सिर्फ परेशानी बचाता है।

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