moh_asl22
5 سال پیش توسط moh_asl22 مطرح شد
4 پاسخ

تفاوت joinها و ریلیشن ها

سلام دوستان میخواستم فرق بین join ها و ریلیشن ها برای دریافت اطلاعات از چند تیبل از دیتابیس رو بدونم و اینکه کدومشون بهتره و اینکه اگه فقط از join ها استفاده بشه کار درستی هست.


ثبت پرسش جدید
حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 5 سال پیش مطرح شد
1

سلام join و ریلیشن تا اونجا که من متوجه شدم هردو یکی هستن و سرعت اجرا رو پایین میاره فعلا به ناچار باید از ریلیشن استفاده کرد


وحید
تخصص : Fullstack
@forughi.vahid 5 سال پیش مطرح شد
1

@mohasl22
موقع ارتباط با دیتابیس اکثر مواقع بهینه ترین حالت اینه که فقط یک کوئری به دیبی بزنید و تمام چیزی که میخواید رو ازش بگیرید . شما وقتی از ریلیشن یک به چند یا چند به چند لاراول استفاده میکنید ، الوکوئنت میاد توی یک کوئری کل یک تیبل رو میگیره و بعد با توجه به id شما به تیبل دیگه کوئری whereIn میزنه و با استفاده از collection لارول این اطلاعات رو با هم merge میکنه و در نهایت groupeby میکنه ، پس اینجا عملا برای یک رابطه یک به چند سه تا کوئری به دیتابیس زده شد ، درصورتی که اگر میخواستید بدون کمک از الوکوئنت خودتون این کارو انجام بدید میتونستید با یک کوئری جوین و گروپ بای کل اطلاعاتی که میخواید رو بدست بیارید .
نتیجه اینکه اگر سرعت براتون خیلی مهمه یا حجم دیتابیس و ترافیکتون زیاده باید بیخیال orm بشید و خودتون دست به کار بشید.


علی بیات
تخصص : توسعه دهنده ارشد وب
@ali.bayat 5 سال پیش مطرح شد
1

ریلیشن ها در واقع کوئری های دیگه ای رو پشت صحنه اجرا میکنند.
پس تعداد کوئری ها زیاد میشه
اما Join در واقع ۱ کوئری هست که اطلاعات چند جدول رو میگیره


moh_asl22
@mohasl22 5 سال پیش مطرح شد
0

مرسی از پاسخ های شما عزیزان


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

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