حسین حسین پور
6 سال پیش توسط حسین حسین پور مطرح شد
1 پاسخ

بهینه کردن تعداد کوئری ها در لاراول

سلام دوستان.
کوئری من در حالت عادی با eloquent به این شکله

$x = PostTag::find($tag_id)->with('movie.post_genre.genre','tv.post_genre.genre')->paginate( 9 );

من یک tag_id دارم نیاز دارم تا با اون همه موارد رو از جدول movies و series و همچنین genres که در جداول جداگانه هستند در بیارم.
الان این با eloquent هفت تا کوئری اجرا میکنه که خیلی سنگینه میخوام دستی با join بهینه کنمش.
کسی میدونه بهینه ترین حالت باید چند تا کوئری بزنم و چطور؟
لینک اسکیما دیتابیس:
https://drive.google.com/file/d/1ZiSyEvKC66-9mDROKgxPny4n5GlrF9RY/view


ثبت پرسش جدید
vahid Mohammadi
@viva.mohammadi 6 سال پیش آپدیت شد
0

@hhp14111

سلام طراحی دیتابیستون باعث شده این مشکل براتون بوجود بیاد شما باید از رابطه Polymorphic استفاده کنید. من لینک آموزشش رو میذارم . مطالعه کنید اگر به مشکلی برخوردید باز بفرمایید باهم حلش کنیم

https://laravel.com/docs/5.7/eloquent-relationships#polymorphic-relations

نکته : اگر بخواین خیلی بهینه عمل کنید توصیه میکنم از ORM Doctorine استفاده کنید

https://www.laraveldoctrine.org/

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

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