راکت

ذخیره اطلاعات در دیتابیس

4 پاسخ

سلام وقت دوستان بخیر

بهترین راه ذخیره دیتا در دیتابیس ( mysql ) بصورت هفتگی چیه ؟

به این صورت که تو یک جدول ، هر هفته داده های مربوطه رو داشته باشه و رکورد های هفتگی duplicate هم نشه.

ثبت پرسش جدید

پاسخ‌ها

4
سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

متوجه نمیشم چرا duplicate بشه؟!
اگر براساس فیلد تاریخ کار کنید چه چیز تکراری دارید؟
مثلا شما روز های هفته (شنبه، یکشنبه و...) رو فیلدش رو یونیک در نظر نگیری ، یک فیلد دیگه اضاف کنی که تاریخ اون روز و یک فیلد هم بعنوان یوزر ایدی براش در نظر بگیری. که در validator خودتون چک کنید که یک کاربر در هفته دیتای تکراری وارد نکنه.
توضیح تصویر رو وارد کنید

اگر درست متوجه شده باشم جدول شما اینجور میشه حالا یک تیبل دیگه یا یک فیلد برای اون دیتات در نظر میگیری .

افشار محمودیان
افشار محمودیان
@afsharmahmoodian

تخصص: برنامه نویس

@juza66
نه متوجه منظورم نشدید ...
من یک جدولی دارم که رکوردی که مربوط به یک ماهی هست رو بصورت زیر مشخص میکنم که این رکورد برای چه سالی و چه ماهی هست.
زیر
حالا میخوام این رو به هفتگی تغییر بدم... اما فکر میکنم که روش بهتری باید باشه ، تا اینکه یک ستون دیگه اضافه کنم به نام week ...

شاید پاسخ شما همین‌جا باشد

سیدعلی موسوی
سیدعلی موسوی
@juza66

تخصص: سی شارپ و پی اچ پی

حالا میخوام این رو به هفتگی تغییر بدم

خب همون فیلد week رو اضاف کن

اما فکر میکنم که روش بهتری باید باشه ، تا اینکه یک ستون دیگه اضافه کنم به نام week

سناریو رو اگر میشه کامل توضیح بده تا بشه بهتر راهنمایی کرد

محمدحسن یگانه
محمدحسن یگانه
@mhyeganeh

تخصص: Full-Stack Web Developer Freelancer

من جای شما بودم بجای ستون های مجزا برای سال و ماه و هفته دو تا فیلد با نوع Date قرار میدادم که بیانگر شروع و پایان دوره بصورت میلادی باشه. و بقیه منطق و محاسبات رو میبردم سمت کدهای برنامه.
اینجوری اولا کار تمیزتر به نظر میاد. ثانیا با هیچ محدودیتی در ادامه مواجه نخواهید شد. و در آخر از نظراتی ممکنه باعث بهبود Performance هم بشه. چون mysql برای کار با تاریخ ها از خیلی جهات بهینه سازی شده و کافیه موقع کوئری گرفتن از whereDate یا whereBetween و ... مطابق با مستندات لاراول استفاده کنید.

برای ارسال پاسخ لازم است وارد شده یا ثبت‌نام کنید

ورود یا ثبت‌نام