انواع روشهای ذخیرهسازی تاریخ شمسی در پایگاه داده
سیستمهای پایگاه داده به صورت پیشفرض از تاریخهای شمسی پشتیبانی نمیکنند. برنامهنویسان ایرانی در طول زمان روشهای مختلفی را برای ذخیرهسازی تاریخ استفاده کردهاند. در این نوشته به انواع روشهای متداول میپردازیم و مزایا و معایب هر یک را بررسی میکنیم.
۱- ذخیرهسازی تاریخ به صورت میلادی
سیستمهای پایگاه داده از تاریخ میلادی پشتیبانی میکنند و به آسانی میتوانید این نوع از داده را در پایگاه داده ذخیره کنید و روی آن محاسبات و مرتبسازی انجام دهید.
علاوه بر تاریخ میلادی، استفاده از فرمتهای Unix Timestamp و Julian Day هم که تاریخهایی بر پایهی عدد هستند، امکانپذیر است. توابع مختلفی برای تبدیل این نوع تاریخها به هم وجود دارد.
مزایا
- امکان استفاده از توابع تاریخ و زمان موجود در پایگاه داده.
- مرتبسازی و مقایسه و پردازش تاریخها سادهتر است.
معایب
- افزایش هزینه برای تبدیل مجدد و نمایش به کاربر.
- ممکن است دقت تبدیل در برخی موارد (مانند سالهای کبیسه) مشکل باشد.
- مشکل بودن محاسبهی مواردی مثل سالگرد تولد.
- کاهش خوانایی تاریخ در پایگاه داده برای کاربران فارسی زبان.
۲- ذخیرهسازی به صورت رشته (String)
در این روش تاریخ شمسی به همان صورتی که توسط کاربر دیده میشود به شکل رشته در پایگاه داده ذخیره میشود. ممکن است بخواهید علامت ممیز بین اجزای تاریخ را قبل از ذخیرهسازی حذف کنید. البته در این صورت لازم است که روز و ماه به صورت دورقمی ذخیره شوند تا جداسازی آنها در زمان استفاده امکانپذیر باشد.
مزایا
- ساده و قابل فهم برای انسان.
- نیازی به تبدیل یا پردازش خاصی ندارد.
- محاسبهی آسان مواردی مثل تاریخ تولد در سالهای آتی
معایب
- انجام برخی محاسبات مثل تعیین فاصلهی دو تاریخ به روز به صورت مستقیم وجود ندارد.
- نیاز به پردازش بیشتر برای تبدیل به فرمتهای دیگر.
۳- ذخیرهسازی به صورت عددی (Integer)
تاریخ شمسی به صورت یک عدد (مثلا 14020715 برای ۱۵ مهر ۱۴۰۲) ذخیره میشود.
مزایا
- امکان مرتبسازی، مقایسه و انجام برخی عملیات ریاضی آسان و سریع است.
- فضای ذخیرهسازی کمتری نسبت به رشتهها نیاز دارد.
- نمایش مجدد تاریخ به کاربر نسبتا آسان است.
- انجام محاسباتی مثل پیدا کردن تاریخ تولد در سالهای بعدی نسبتا آسان است.
معایب
- انجام برخی محاسبات مثل تعیین فاصلهی دو تاریخ پر هزینه است.
کدام روش بهترین روش است ؟
امکان انتخاب یکی از روشهای بالا به عنوان بهترین روش وجود ندارد. اینکه چه نیازهایی در پروژهی شما وجود دارد و مزایا و معایب هر روش برای شما چیست تعیین میکند که بهترین شیوه برای شما چیست. در نتیجه این شما هستید که باید انتخاب نهایی را انجام دهید.