ডাটাবেসে টাইম জোন সংরক্ষণের জন্য সেরা অনুশীলন কোনটি?


12

আমরা ডাটাবেসে আমাদের প্রতিটি ঠিকানার জন্য সময় অঞ্চল সংগ্রহ শুরু করতে চাই। সময় অঞ্চলগুলি সংরক্ষণ করার জন্য সেরা অনুশীলন কোনটি? আপনি কীভাবে বিদ্যমান ঠিকানার রেকর্ডের জন্য সময় অঞ্চল অর্জন করবেন?

আমি মাইক্রোসফ্ট এসকিউএল সার্ভার,। নেট এমভিসি, সি # ব্যবহার করছি। কোন পরামর্শ ব্যাপকভাবে প্রশংসা হবে।



বিটিডব্লিউ একটি সাধারণ টাইম জোনটি কোনও আন্ত ব্যবহার করতে হয় তবে কিছু সময় অঞ্চলগুলি + বা - 30 মিনিট বা 15 মিনিট হতে পারে :) ওহ এবং মনে রাখবেন এটি কোনও সঠিক বিজ্ঞান নয়, দিবালোকের সঞ্চয় এবং এগুলি আপনাকে ফেলে দিতে পারে।
রক্লান

2
ওয়ান ওয়ে @LachlanB এটা যে সময় অঞ্চল আরো একটি হল লাগাতে অবস্থান তুলনায় এটি একটি হল সময় অফসেট । এমনকি সেই দৃষ্টিভঙ্গিও তার নিজের পক্ষে যথেষ্ট নয়, উদাহরণস্বরূপ রাশিয়া সম্প্রতি দিবালোকের সঞ্চয় সম্পর্কে তাদের নীতি পরিবর্তন করেছে, এর অর্থ হল যে আপনি প্রকৃত তারিখের উপর নির্ভর করে এটির সাথে অন্যরকম আচরণ করতে চান।
ড্যানিয়েল বি

উত্তর:


7

আপনি এমন কিছু সঞ্চয় করতে চান যা পুরো সময় পরিবর্তন হয় না (বা বছরে দুবার)। টাইম জোন ডাটাবেস https://en.wikedia.org/wiki/List_of_tz_database_Time_zones হুবহু সঠিক জিনিস। সুতরাং আপনি কেবল দুটি অক্ষর সংরক্ষণ করুন।

এই ডাটাবেস থেকে আপনি অফসেটের সময় এবং কখন দিবালোকের সঞ্চয় সময় সক্রিয় থাকে তা অনুসন্ধান করতে পারেন। এটি কেবল অফসেটের সময় নয়, এটি আপনাকে একটি অঞ্চলও দেয়, একই অক্ষাংশে অনেক জায়গাতে বিভিন্ন কোড থাকবে এবং স্বতন্ত্রভাবে তাদের সময় অঞ্চল নিয়মগুলি পরিবর্তন করতে পারে এবং আপনার সফ্টওয়্যার এটি পরিচালনা করতে সক্ষম হবে।

আপনার ডাটাবেসে পরিবর্তন করার দরকার কেবল তখনই যখন কোনও স্থান পরিবর্তন হয় যা কোন টাইম জোনের সাথে সম্পর্কিত, এটি খুব বিরল।


নোট করুন যে উইকিপিডিয়ায় তালিকায় সমস্ত আইএএনএ সময় অঞ্চলগুলির জন্য 2-বর্ণ সংক্ষিপ্ত বিবরণ নেই - প্লাস ম্যাপিংটি দ্ব্যর্থহীন নয়। আপনার যদি সম্পূর্ণ historicalতিহাসিক তথ্য প্রয়োজন হয়, তার পরিবর্তে পুরো নামগুলির জন্য যান।
হাল্ক

2
উইকিপিডিয়া পৃষ্ঠায় আমি কেবলমাত্র দুটি অক্ষরের কোডগুলি দেখি সেগুলি দেশের কোড। এগুলি স্বতন্ত্রভাবে সময় অঞ্চলগুলি সংজ্ঞায়িত করে না। উদাহরণস্বরূপ, মার্কিন যুক্তরাষ্ট্রের সমস্ত টাইম অঞ্চলগুলিতে একই দুটি অক্ষরের দেশীয় কোড রয়েছে: মার্কিন US একইভাবে, সমস্ত অস্ট্রেলিয়ায় কান্ট্রি কোড এউ রয়েছে।
ইয়ান

3

পরম সর্বোত্তম অনুশীলনটি এমন ডেটাবেস ব্যবহার করা হবে TIMESTAMP WITH TIMEZONEযা এসকিউএল 99 দ্বারা সংজ্ঞায়িত ডেটা টাইপকে সমর্থন করে ।

এসকিউএল সার্ভারের একটি প্রকার রয়েছে যা প্রকৃত সময় অঞ্চলটি সংরক্ষণ datetimeoffsetকরে সবকিছু TIMESTAMP WITH TIMEZONEকরতে পারে। আপনি যা করতে পারেন তা হ'ল ইউটিসি (উদাঃ 2013-05-04 12:34:56 -5:00) এর অফসেট সংরক্ষণ করা , যার অর্থ সময় অঞ্চলের উপর ভিত্তি করে স্টোরেজ করার আগে আপনাকে এটি নির্ধারণ করতে হবে।


3

ধরে নিই যে আপনি। নেট ফ্রেমওয়ার্কটি 4.0 বা তার চেয়ে বেশি ব্যবহার করছেন, টাইমজোনইনফো আপনার প্রয়োজন।

ডাটাবেসে সমস্ত তারিখের মানগুলি ইউটিসি ফর্ম্যাটে সংরক্ষণ করুন। প্রদর্শনের জন্য সঞ্চিত তারিখগুলিকে স্থানীয় ফর্ম্যাটে রূপান্তর করতে প্রতিটি ক্লায়েন্টের জন্য আইডি মান বা টুশিরালাইজড স্ট্রিং () এর ফলাফল ব্যবহার করুন।


2

আপনি বলেছেন যে আপনি আপনার ডিবিতে প্রতিটি ঠিকানার জন্য একটি সময় অঞ্চল সংরক্ষণ করতে চান, তবে আপনি এটি দিয়ে কী করতে চান তা বলেননি। কোনও ডিবিতে কোনও কিছু সঞ্চয় করা নিজের মধ্যে খুব কমই শেষ।

যাই হোক না কেন আমি টিজেড ডাটাবেস , ওরফে ওলসেন ডাটাবেস, সরাসরি বা টিজেডকে সংহত করার মতো শেল্ফ সফ্টওয়্যার ব্যবহার করে দেখতে চাই। আপনি টিজেড ডিবিতে যেমন, 'আফ্রিকা / কাম্পালা' বা 'ইউরোপ / প্যারিস' উল্লেখ করার জন্য একটি স্ট্রিং হিসাবে টাইমজোনটি কেবল সঞ্চয় করতে পারেন store

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.