2010-12-08 16 views
5

मैं डेटाबेस में कुछ रिकॉर्ड संग्रहीत कर रहा हूं। एक रिकॉर्ड में 'अंतिम बार देखा गया' फ़ील्ड है जो एक टाइमस्टैम्प है। यदि अभी तक कोई रिकॉर्ड नहीं देखा गया है, तो टाइमस्टैम्प अमान्य है। मैं वर्तमान में भविष्य की तारीख को संग्रहीत कर रहा हूं उदा। अमान्य तिथि को दर्शाने के लिए 'अंतिम बार गए' फ़ील्ड में '2101-01-01 00:00:00'।डेटाबेस में 'अमान्य' तिथि संग्रहीत करना

क्या 'अमान्य' तिथि इंगित करने का एक बेहतर तरीका है। ऐसा करने के लिए अनुशंसित 'सर्वोत्तम अभ्यास' क्या है?

मैं MySQL का उपयोग कर रहा है, लेकिन आदर्श, सिफारिश db नास्तिक

उत्तर

6

इसके बजाय एक नल मूल्य स्टोर करें। MySQL टाइमस्टैम्प बहुत खराब हो गए हैं, इसलिए आपको अपनी तालिका स्कीमा को बदलने के लिए इसे प्रोत्साहित करने के लिए इसे बदलने की आवश्यकता हो सकती है ताकि आप वहां एक नल डाल सकें; मैं इसके बजाय DATETIME का उपयोग करता हूं, यह MySQL में TIMESTAMPs से थोड़ा कम अजीब है।

+0

क्या एक MySQL DATETIME एक पूर्ण स्वीकार करेगा? – skyeagle

+0

यदि ऐसा करने के लिए कॉन्फ़िगर किया गया है, लेकिन डिफ़ॉल्ट रूप से नहीं। आप इसे 'टेबल माईटेबल चेंज कॉलम mydatetimefield mydatetimefield डेटाटाइम नल' जैसे कुछ के साथ बदल सकते हैं, ', अपने टेबल और फ़ील्ड नामों के आधार पर mytable और mydatetimefield को उचित रूप से बदलना। –

1

मैं सिर्फ फ़ील्ड रिक्त छोड़ना होगा होना चाहिए।

यदि वे कभी भी रिकॉर्ड नहीं गए हैं, तो इसमें टाइमस्टैम्प नहीं होना चाहिए।

3

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

0

क्या कोई कारण है कि आप इस के लिए NULL का उपयोग नहीं करेंगे?

संबंधित मुद्दे