जवाबों:
आपको स्तंभ के उद्देश्य का वर्णन करना चाहिए और जरूरी नहीं कि डेटा प्रकार। आप नाम में दिनांक / समय / टाइमस्टैम्प शामिल कर सकते हैं, लेकिन आपको अर्थ भी शामिल करना चाहिए। उदाहरण के लिए
जोड़ने की तारीख / समय / टाइमस्टैम्प और इस तरह के अंत में विशेष रूप से उपयोगी है जब जोड़ की अनुपस्थिति किसी अन्य स्तंभ के साथ संघर्ष करेगी। उदाहरण के लिए, एक तालिका को एक स्थिति और एक स्थिति समय दोनों की आवश्यकता हो सकती है।
कैसे के xyz_atलिए एक के लिए timestampऔर xyz_onएक dateक्षेत्र के लिए - जैसे start_atया start_on?
आम तौर पर मैं फ़ील्ड नाम में डेटा प्रकार को शामिल करने से बचता हूँ - यदि आप किसी भी फ़ील्ड के नाम से टाइप के बारे में जानने की जरूरत है, तो आप बेहतर अनुमान लगा सकते हैं - (कहा जाता descriptionहै कि एक फ़ील्ड होने की संभावना नहीं है integer) - लेकिन बताने में सक्षम a timestampऔर a के बीच का अंतर dateअक्सर मददगार होता है।
मैं उपयोग करता हूं:
updated_atदोनो में से एक हो सकता है। लेकिन मुझे लगता है कि उत्तर हमेशा की तरह नामकरण के साथ है, सबसे संक्षिप्त नाम का उपयोग करें जो सभी यथार्थवादी अस्पष्टता को दूर करता है। Ie यदि किसी विशेष संदर्भ में एक निश्चित भ्रम की संभावना है, तो इसे समाप्त करें, लेकिन उन नामों का उपयोग न करें जो इसके लिए आवश्यक से अधिक
मैंने आपकी प्रोफ़ाइल को देखा और यह कहता है कि आप SQL सर्वर के साथ काम करते हैं और SQL सर्वर में TIMESTAMP डेटा प्रकार का दिनांक या समय से कोई लेना-देना नहीं है और इसका उपयोग पंक्तियों पर मुहर लगाने वाले संस्करण के लिए किया जाता है। यह पहचानने में बहुत उपयोगी है कि किन पंक्तियों को एक निश्चित समय से संशोधित किया गया है।
यदि आप TIMESTAMP का उपयोग करते हैं तो आपको कॉलम नाम निर्दिष्ट करने की आवश्यकता नहीं है और SQL सर्वर आपके लिए एक कॉलम "टाइमस्टैम्प" बनाएगा। लेकिन "ROWVERSION" डेटा प्रकार का उपयोग करने की अनुशंसा की जाती है और इस मामले में आपको कॉलम नाम निर्दिष्ट करना होगा।
इस तरह के कॉलम के लिए सबसे अच्छा नाम क्या है? यह निर्भर करता है, और मैं वर्जनस्टैंप, आरवी आदि जैसे कुछ का उपयोग करूंगा ... जो मैं महत्वपूर्ण मानता हूं वह यह नहीं है कि आप इसे कैसे नाम दें, लेकिन क्या आप बोर्ड भर में लगातार उपयोग कर रहे हैं।
HTH
Ref: http://msdn.microsoft.com/en-us/library/ms182776(v=sql.90.in.xx
मैंने पाया कि स्तंभ नाम जैसे कि create_time, update_timeऔर expire_timeजब नामकरण और युक्ति (RSpec) की बात आती है तो बेहतर पठनीयता आती है।
मैं तारीख टिकटों के लिए डीटी के एक उपसर्ग का उपयोग करना पसंद करता हूं। उदाहरण के लिए: DTOpened, DTClosed, DTLastAccessed। यह मुझे किसी भी तालिका में सभी दिनांक टिकटों के त्वरित संदर्भ के लिए सभी DTxxxx को सूचीबद्ध करने देता है।
मैं टेक्सास इंस्ट्रूमेंट्स के लिए काम करता हूं, और उनके सिस्टम पर वे xxxx_ dttm का उपयोग करते हैं
मैं पहले से मौजूद सम्मेलनों का उपयोग करना पसंद करता हूं।
यूनिक्स और प्रोग्रामिंग भाषाओं में संशोधन समय के mtimeलिए एक व्यापक रूप से स्वीकृत सम्मेलन है
निर्माण समय के लिए,
btimecrtimeotimeकरते हैं (पूछें नहीं, "उत्पत्ति" अनुमान लगाते हुए)।तो मेरे लिए, मैं चुनता हूं mtime, और crtimeमेटा डेटा के लिए।
उपयोगकर्ता द्वारा आपूर्ति किए गए डेटा के लिए, मैं उस क्षेत्र के साथ जाता हूं जो क्षेत्र का प्रतिनिधित्व करता है। अगर यह जन्मदिन है, तो मैं कहता हूं user_birthday।
जहाँ तक सटीक है, कुछ के लिए यह उन्हें बहुत अधिक सटीक पर लटका लगता है। आप अपने birthdateटाइमस्टैम्प के रूप में स्टोर कर सकते हैं (आखिरकार आप तकनीकी रूप से दिन के समय पैदा हुए थे), लेकिन एसक्यूएल कल्पना में उच्च परिशुद्धता से लेकर कम सटीकता तक कास्ट होता है, इसलिए यदि आप एक सभ्य डेटाबेस का उपयोग कर रहे हैं तो यह एक मुद्दा नहीं होना चाहिए। । अपने ऐप में ही, जरूरत पड़ने पर आप हमेशा रौंद सकते हैं। यही कहना है, मैं कभी नहीं जाना होगा birthday_date।
@ इवान कैरोल द्वारा सुझाव के रूप में, मौजूदा मानकों के साथ जाएं जब तक कि आपके पास पैटर्न को तोड़ने का मजबूत कारण न हो।
यदि यह कुछ नया है तो आप किसी भी उत्तर का अनुसरण कर सकते हैं जो आपको सबसे अच्छा लगता है।
मैं * _on और * _by का उपयोग करता हूं क्योंकि इससे मुझे यह जानने में मदद मिलती है कि कब और कौन पंक्ति के अनुरूप है:
- created_on & created_by
- updated_on & updated_by
- deleted_on & deleted_by -- soft delete
- approved_on & approved_by