سوال در مورد جداول چند به چند و یک به چند در لاراول

2 سال پیش توسط mahdi آپدیت شد
آفلاین
user-avatar
mahdi ( 12078 تجربه )
4 سال پیش
تخصص : برنامه نویس ...

لینک کوتاه اشتراک گذاری

1

سلام
من تازه از فریم ورک سیمفونی به لاراول مهاجرت کردم.
سوالی که برام پیش اومده اینه که وقتی تو سیمفونی روابط جداول رو تعیین می کردیم، روابط در خود MySQL اعمال می شد ولی در لاراول دیدم در PHPMyAdmin هیچ تفاوتی در جداول نمی بینم انگار که روابط تنها در Eloquent وجود دارند و در MySQL چنین روابطی وجود نداره.
آیا من درست متوجه شدم؟ و در صورت صحت آیا این قضیه بازدهی دیتابیس رو پایین نمیاره؟

بهترین پاسخ
آفلاین
user-avatar
علی بیات
2 سال پیش

عملکرد ORM های این دو فریم ورک با هم متفاوته..

Doctrine روابط رو در خود جدول ها اعمال میکنه
Eloquent از طریق PHP این کارو انجام میده

بازدهی وقتی پایین میاد که در حین استفاده از الکوئنت از Best Practice ها پیروی نکنیم... عملکرد الکوئنت می‌تونه در برخی موارد عجیب باشه اما اگر به نحو درست ازش استفاده بشه، مشکلی پیش نمیاد

آفلاین
user-avatar
developer ( 42962 تجربه )
4 سال پیش
تخصص : برنامه نویس

لینک کوتاه اشتراک گذاری

1

من سیمفونی رو ندیدم که منظورتون رو بفهمم ولی توی لاراول روابط اگه یک به چند باشه که با درج مثلا user_id برمیگرده ولی اگه چند به چند باشه توی جدول واسط(primary) میاد

آفلاین
user-avatar
mahdi ( 12078 تجربه )
4 سال پیش
تخصص : برنامه نویس ...

لینک کوتاه اشتراک گذاری

0

مثل ارتباط FOREIGN KEY به PRIMARY KEY که در FrameWork های دیگه تعیین میشوند ولی در لاراول نمی دونم چرا ایجاد نمی شوند.

آفلاین
user-avatar
محمد امیر محمدی ( 2723 تجربه )
4 سال پیش
تخصص : برنامه نویس لاراول و ویو جی اس

لینک کوتاه اشتراک گذاری

0

در لاراول همه روابط رو میشه ایجاد کرد
داخل میگریشن شما روابط رو برقرار کنید و یک نمونه کد از کلید خارجی ببینید حتما متوجه میشوید.

آفلاین
user-avatar
mahdi ( 12078 تجربه )
4 سال پیش
تخصص : برنامه نویس ...

لینک کوتاه اشتراک گذاری

1

متوجه هستم ولی این روابط در MySQL ایجاد نمی شه. من Export گرفتم از اطلاعات دیتابیس ولی این روابط رو اصلا ندیدم و این روابط علی الظاهر فقط منحصر به Eloquent است.

آفلاین
user-avatar
Seyyed AMir ( 91 تجربه )
2 سال پیش

لینک کوتاه اشتراک گذاری

0

در migration ها باید این روابط را تعریف کنی که درون دیتابیس براشون کلید خارجی ایجاد بشه

نمونه

Schema::table('money_boxes', function($table) {
$table->foreign('creator_id')->references('id')->on('users')->onDelete('no action');
});

آفلاین
user-avatar
علی بیات ( 450809 تجربه )
2 سال پیش
تخصص : توسعه دهنده ارشد وب

لینک کوتاه اشتراک گذاری

0

عملکرد ORM های این دو فریم ورک با هم متفاوته..

Doctrine روابط رو در خود جدول ها اعمال میکنه
Eloquent از طریق PHP این کارو انجام میده

بازدهی وقتی پایین میاد که در حین استفاده از الکوئنت از Best Practice ها پیروی نکنیم... عملکرد الکوئنت می‌تونه در برخی موارد عجیب باشه اما اگر به نحو درست ازش استفاده بشه، مشکلی پیش نمیاد

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.