• 1 رای - 4 میانگین
  • 1
  • 2
  • 3
  • 4
  • 5
ذخیره تاریخ در دیتابیس
#1
Question 
سلام
شما از چه روشی برای ذخیره تاریخ میلادی یا شمسی در دیتا بیس استفاده میکنید؟ علتش را توضیح بدید.
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#2
از timestamp
دلیلش هم مشخص هست استفاده از این عدد خیلی راحتتر از استفاده به صورت رشته هست
  پاسخ
تشکر شده توسط : zoghal
#3
من شخصا به صورت datetime ذخیره میکنم، در صورتی هم که نیاز به دریافت اون به صورت timestamp داشته باشم از تابع unix_timestamp استفاده میکنم که تاریخ را به صورت timestamp بر میگردونه.
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط :
#4
توی کار با دیتابیس جستجوی برای یک عدد خیلی سریتعتر انجام میشه
حجم اطلاعات و سرعت درج و دریافت یک عدد از هم از datetime بیشتر هست
  پاسخ
تشکر شده توسط : oia
#5
من شخصا فکر نمیکنم به این صورت باشه، چون اگر قرار بود همه تاریخ را به صورت timestamp ذخیره کنن و از نظر سرعت بهتر بود لزومی نداشته که datetime وجود داشته باشه.
من خودم موقع کار با mysql و پی اچ پی به این نتیجه رسیدم که شما مثلا توی برنامه تا 50% محاسبات را به جای انجام در php به mysql منتقل کردم و از توابع اون استفاده کردم و این کار نه تنها سرعت عملیات را کاهش نداده که افزایش هم داده.
این مطلب را هم بد نیست یه نگاه بهش بندازید، توی تست هایی که ایشون انجام داده سرعت استفاده از datetime تا دوبرابر برابر بیشتر از ذخیره به صورت timestamp بوده:
کد:
http://dbscience.blogspot.com/2008/08/can-timestamp-be-slower-than-datetime.html
یک ونچمارک دیگه در همین زمینه:
کد:
http://www.xaprb.com/blog/2006/06/12/benchmarks-for-date-operations-in-mysql/
یه بحث دیگه در همین زمینه:
کد:
http://www.sitepoint.com/forums/showthread.php?t=306686
Two hands working can do more than a thousand clasped in prayer
  پاسخ
تشکر شده توسط : zoghal imez08
#6
میلاد عزیز یکی از دلایلی که وحید میگه که timestamp بهتر هست این می تونه باشه :

در اصول مهندسی نرم افزار ، شاخه ای هست به اسم پایگاه داده و هدف رعایت بهترین حالت برای ذخیره اطلاعات هست که نرمال سازی و عدم افزونگی اطلاعات یکی از زیر شاخه های اون هست

در روش timestamp چون تاریخ به صورت اعداد و در محدود int ذخیره میشه ولی در حالات دیگر به خاطر استفاده از spiliter ها یا جدا کننده ها مقدار به روش char or varchar ذخیره میشوند، که در حالت ساده و معمولی char 2byte و int 1byte فضا نیاز داره

حالا در یک دیتابیس بزرگ،کدوم روش بهینه تر هست؟ درضمن در mysql توابع تاریخ بر روی timestamp هم کار میکنند
  پاسخ
تشکر شده توسط : admin مسلم فلاح نیت


پرش به انجمن:


کاربران در حال بازدید این موضوع: 1 مهمان