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

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

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


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

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

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

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


developer
تخصص : برنامه نویس
@developer 6 سال پیش مطرح شد
1

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


mahdi
تخصص : برنامه نویس ...
@esmahdim 6 سال پیش مطرح شد
0

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


محمد امیر محمدی
تخصص : برنامه نویس لاراول و ویو جی اس
@mem.amir.m 6 سال پیش مطرح شد
0

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


mahdi
تخصص : برنامه نویس ...
@esmahdim 6 سال پیش مطرح شد
1

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


Seyyed AMir
@seyyed.a 4 سال پیش مطرح شد
0

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

نمونه

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


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

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

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

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


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

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