मैं एक PostgreSQL DB डिजाइन पर काम कर रहा हूं और मैं सोच रहा हूं कि टाइमस्टैम्प को कैसे स्टोर किया जाए।
मान्यताओं
विभिन्न टाइमज़ोन में उपयोगकर्ता सभी CRUD फ़ंक्शंस के लिए डेटाबेस का उपयोग करेंगे।
मैंने 2 विकल्प देखे हैं:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
क्योंकि timestamp
मैं एक स्ट्रिंग भेजूंगा जो INSERT क्षण के लिए सटीक (UTC) टाइमस्टैम्प का प्रतिनिधित्व करेगा।
क्योंकि bigint
मैं एक ही चीज़ को स्टोर करूंगा, लेकिन एक नंबर फॉर्मेट में। (समय क्षेत्र के मुद्दों को सर्वर को सौंपे जाने से पहले संभाला जाता है, इसलिए हमेशा यूटीसी में मिलिस।)
स्टोर करने के साथ एक मुख्य लाभ bigint
यह हो सकता है कि स्टोर करना और पुनः प्राप्त करना आसान होगा, क्योंकि सही ढंग से स्वरूपित टाइमस्टैम्प को पास करना एक साधारण संख्या (यूनिक्स एपोक के बाद मिली) की तुलना में अधिक जटिल है।
मेरा सवाल यह है कि सबसे लचीली डिज़ाइन के लिए कौन सा अनुमति देगा और प्रत्येक दृष्टिकोण के नुकसान क्या हो सकते हैं।