یکی از مواردی که حتما در طی پروژه ها با اون روبرو می شین ارسال اطلاعات نمودار ها ( Charts ) برای کلاینت هست . حالا چه اندروید و ios ، چه وب .
شما وظیفه ی تحلیل و گرفتن اطلاعات از دیتابیس رو دارید و اطلاعات رو به هر نحوی که دوست دارید میتونید سمت کلاینت بفرستید اما خب بهتره جوری باشه که پارس کردنش راحت باشه .
توی مثال زیر ، فکر کنین یه سیستم وبلاگ دهی دارید ، یا مثلا یه سایت خبری ، جدول مطالب رو بر اساس ساعت ایجاد شدن پست ها بررسی میکنیم تا ببینیم توی چه ساعت هایی نوشته های بیشتر یا کمتری ارسال شدن ( یا مثلا بازدید از پست ها رو بر اساس ساعات شبانه روز بررسی میکنیم و و و ... )
توی مثال بالا اونجایی که نوشته date_format created_at, %H رو دقت کنید .
این لینک رو باز کنید تا ببینید به همین شکل چقدر راحت میتونید دیتابیس رو بر اساس روز های هفته ، روز های ماه و سال و .... لیست کنید . تنها نکته ای که توی آنالیز داده ها برای ( روز های هفته ) وجود داره اینه که ترتیب داده ها توی خروجی به این شکله : ( یکشنبه ، دوشنبه ، سه شنبه ، چهارشنبه ، پنج شنبه ، جمعه ، شنبه ) یعنی یکشنبه اول و شنبه آخر هست . که با یک order by field 6,0,1,2,3,4,5 آخر کوئریتون درست خواهد شد .
سعی میکنیم همیشه جواب هایی که به کلاینت میدیم مثل این مثال بالامون باشه . محورهای x و y رو جدا و حتی در کنار هم بصورت xy برای کلاینت میفرستیم تا استفاده کنه .
در برخی موارد شما مجبور هستید داده های روز های مختلف رو از دیتابیس دونه دونه بگیرید و روشون کارها و محاسباتی انجام بدید و برای کلاینت بفرستید . خب طبیعتا یکمی فشارش زیاده پس پیشنهاد میکنم جواب همچین نموداری رو cache کنید . ما توی این مثال سفارش های سی روز گذشته رو درآوردیم و روی محور X میخوایم روزهای شمسی رو نشون بدیم .
توی این مثال سی روز گذشته رو به شمسی به کلاینت تحویل میدیم ( مثلا 05-02-1398 ) این کار با کمک کتابخونه morilog لاراول انجام میشه . و همونطور که توی کد کامنت نوشتم میتونید از whereDate هم استفاده کنید .
امیدوارم کمکی کرده باشم .