راکت

روابط چند به چند

2 پاسخ

سلام دوستان
کسی میدونه روش صحیح ایجاد رابطه چند به چند بین مثلا 5 تا table چیه ؟
فرض کنید 5 تا table داریم و هر table با table دیگه رابطه ی چند به چند داره یعنی 10 تا table واسط لازمه ؟؟
فرض کن table ها اینان که همه با هم many to many هستن :
اعضای بدن / درمان / علائم / بیماری / تخصص پزشک
و سوال دوم اینکه فرض کن تو این ساختار میخوای تخصص هایی رو پیدا کنی که با بیماری آب مروارید در ارتباط هستن ؟

من 10 تا واسط ساختم بین هر کدوم از 5 جدول بالا + یک جدول pivot که فیلداش اینان :

id / اعضای بدن / درمان / علائم / بیماری / تخصص پزشک

کار رو راه میندازه ولی ....

yashar
yashar
@yasharazarbahram
ثبت پرسش جدید

پاسخ‌ها

2
sinaQ
sinaQ
@sinaQasemi

تخصص: magican

برای همچین شرایطی بایست از روابط many to many polymorphic استفاده بشه که معنای تحت الفطیش میشه روابط چند به چندِ چندشکلی.
https://laravel.com/docs/8.x/eloquent-relationships#many-to-many-polymorphic-relations
مستندات رو مطالعه کنید!

https://roocket.ir/series/laravel-projects/episode/77

yashar
yashar
@yasharazarbahram

polymorphic درسته تعداد جداول واسط رو از 10 به 5 میرسونه ولی تعداد رکورد ها رو دوبرابر میکنه (بعضی از موجودیت ها بالای 3 یا 4 هزار رکورد هستن ) و با توجه به مستندات mysql وقتی بین افزایش تعداد جداول و افزایش رکورد ها مجبور به انتخاب شدی افزایش جدوال بهینه تره تا افزایش رکوردها

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

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

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