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

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

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


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

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

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

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


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

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


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

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


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

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


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

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


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

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

نمونه

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


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

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

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

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


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

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