سلام
من تازه از فریم ورک سیمفونی به لاراول مهاجرت کردم.
سوالی که برام پیش اومده اینه که وقتی تو سیمفونی روابط جداول رو تعیین می کردیم، روابط در خود MySQL اعمال می شد ولی در لاراول دیدم در PHPMyAdmin هیچ تفاوتی در جداول نمی بینم انگار که روابط تنها در Eloquent وجود دارند و در MySQL چنین روابطی وجود نداره.
آیا من درست متوجه شدم؟ و در صورت صحت آیا این قضیه بازدهی دیتابیس رو پایین نمیاره؟
عملکرد ORM های این دو فریم ورک با هم متفاوته..
Doctrine روابط رو در خود جدول ها اعمال میکنه
Eloquent از طریق PHP این کارو انجام میده
بازدهی وقتی پایین میاد که در حین استفاده از الکوئنت از Best Practice ها پیروی نکنیم... عملکرد الکوئنت میتونه در برخی موارد عجیب باشه اما اگر به نحو درست ازش استفاده بشه، مشکلی پیش نمیاد
من سیمفونی رو ندیدم که منظورتون رو بفهمم ولی توی لاراول روابط اگه یک به چند باشه که با درج مثلا user_id برمیگرده ولی اگه چند به چند باشه توی جدول واسط(primary) میاد
مثل ارتباط FOREIGN KEY به PRIMARY KEY که در FrameWork های دیگه تعیین میشوند ولی در لاراول نمی دونم چرا ایجاد نمی شوند.
در لاراول همه روابط رو میشه ایجاد کرد
داخل میگریشن شما روابط رو برقرار کنید و یک نمونه کد از کلید خارجی ببینید حتما متوجه میشوید.
متوجه هستم ولی این روابط در MySQL ایجاد نمی شه. من Export گرفتم از اطلاعات دیتابیس ولی این روابط رو اصلا ندیدم و این روابط علی الظاهر فقط منحصر به Eloquent است.
در migration ها باید این روابط را تعریف کنی که درون دیتابیس براشون کلید خارجی ایجاد بشه
نمونه
Schema::table('money_boxes', function($table) {
$table->foreign('creator_id')->references('id')->on('users')->onDelete('no action');
});
عملکرد ORM های این دو فریم ورک با هم متفاوته..
Doctrine روابط رو در خود جدول ها اعمال میکنه
Eloquent از طریق PHP این کارو انجام میده
بازدهی وقتی پایین میاد که در حین استفاده از الکوئنت از Best Practice ها پیروی نکنیم... عملکرد الکوئنت میتونه در برخی موارد عجیب باشه اما اگر به نحو درست ازش استفاده بشه، مشکلی پیش نمیاد
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟