আমি পোস্টগ্রিজ এসকিউএল ডিবি ডিজাইনে কাজ করছি এবং আমি কীভাবে সেরা টাইমস্ট্যাম্পগুলি সঞ্চয় করব তা ভাবছি।
অনুমিতি
বিভিন্ন টাইম জোনের ব্যবহারকারীরা সমস্ত সিআরইউডি ফাংশনের জন্য ডাটাবেস ব্যবহার করবেন।
আমি 2 টি বিকল্প দেখেছি:
timestamp NOT NULL DEFAULT (now() AT TIME ZONE 'UTC')
bigint NOT NULL DEFAULT
কারণ timestamp
আমি এমন একটি স্ট্রিং প্রেরণ করব যা INSERT মুহুর্তের জন্য সঠিক (ইউটিসি) টাইমস্ট্যাম্পের প্রতিনিধিত্ব করবে।
জন্য bigint
আমি ঠিক একই জিনিস সঞ্চয় করতে হবে, কিন্তু একটি সংখ্যা বিন্যাসে। (টাইম জোনের সমস্যাগুলি মিলিস সার্ভারের হাতে দেওয়ার আগে হ্যান্ডেল করা হয়, তাই সর্বদা ইউটিসিতে মিলিস))
bigint
স্টোর করার একটি প্রধান সুবিধা হ'ল এটি সংরক্ষণ করা এবং পুনরুদ্ধার করা সহজতর হবে কারণ সঠিকভাবে ফর্ম্যাট হওয়া টাইমস্ট্যাম্পটি পাস করা সহজ সংখ্যার চেয়ে জটিল (ইউনিক্স এপোকের পরে মিলিস)।
আমার প্রশ্নটি হ'ল কোনটি সবচেয়ে নমনীয় নকশার জন্য অনুমতি দেয় এবং প্রতিটি পদ্ধতির ক্ষতিগুলি কী হতে পারে।