راکت
حل
4 پاسخ

کلید خارجی در لاراول

سلام دوستان
ببخشید چجوری میشه واسه ی رابطه های پلی مورفیک توی ماگریشن هاشون کلید خارجی تعریف کرد؟؟


ثبت پرسش جدید
محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

در روابط پلی مورفیک چون هر یک از رکورد ها میتونه به یک model متفاوت مربوط باشه دیگه تعریف کلید خارجی (FK) مثل حالت پیش فرض و ساده وجود نداره و البته نیازی هم به اینکار نیست.

اما نکته ای که هست برای اینکه از خاصیت indexing دیتابیستون استفاده کنید و سرعت اجرای کوئری ها بیشتر بشه حواستون باشه که توصیه میشه حتما یک index از نوع compound بر روی دو ستون تعیین کننده رابطه تعریف بشه. چیزی که بصورت اتومات وقتی FK تعریف می‌کردید انجام میشد و شاید خیلی متوجهش هم نمی‌شدید. اینجا باید بصورت دستی و مشخص انجام بشه. مثالش میشه اینجوری:

$table->string('commentable_type');
$table->unsignedBigInteger('commentable_id');
//Define index:
$table->index(['commentable_type', 'commentable_id']);

0

دوستان کسی نبود؟


حسین شیری نژاد
حسین شیری نژاد
تخصص :programmer
@hosseinshirinegad984 سال پیشمطرح شد
0

سلام
در مورد روابط پالی مورفیک فارسی هم سرچ بزنید کلی آموزش بهتون میده


0

@hosseinshirinegad98
مشکلم کله روابط نیست فقط کلید خارجی اونم روی همین روابط هست اینکه اصن کلید خارجی تعریف میشه براشون یا نه اگه میشه چجوری.سرچ کردم پیدا نکردم


محمدحسن یگانه
محمدحسن یگانه
تخصص :Full-Stack Web Developer Freelancer
@mhyeganeh4 سال پیشمطرح شد
0

در روابط پلی مورفیک چون هر یک از رکورد ها میتونه به یک model متفاوت مربوط باشه دیگه تعریف کلید خارجی (FK) مثل حالت پیش فرض و ساده وجود نداره و البته نیازی هم به اینکار نیست.

اما نکته ای که هست برای اینکه از خاصیت indexing دیتابیستون استفاده کنید و سرعت اجرای کوئری ها بیشتر بشه حواستون باشه که توصیه میشه حتما یک index از نوع compound بر روی دو ستون تعیین کننده رابطه تعریف بشه. چیزی که بصورت اتومات وقتی FK تعریف می‌کردید انجام میشد و شاید خیلی متوجهش هم نمی‌شدید. اینجا باید بصورت دستی و مشخص انجام بشه. مثالش میشه اینجوری:

$table->string('commentable_type');
$table->unsignedBigInteger('commentable_id');
//Define index:
$table->index(['commentable_type', 'commentable_id']);

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

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