ورود

View Full Version : ایجاد جدول محصولات و تصاویر



pary_daryayi
سه شنبه 05 فروردین 1399, 15:43 عصر
سلام.

یک جدول products دارم که هر محصولی میتونه چند تصویر داشته باشه .
یک جدول جدا برای تصاویر ایجاد کردم که رابطه hasmany برقراره .
موقع ایجاد یک محصول ، همزمان تصاویرش هم در جدول درج میشه ( از جی کوئری در کد html استفاده کردم که میشه بصورت داینامیک تصویر جدید اپلود کرد ).

این کد درج همزمان هست . نتیجه میده اما تو لاراول روش بهتری هست یا باید حتما از حلقه استفاده کرد ؟



$product = Product::create($inputs);

foreach($request->file('filename') as $image) {
$images = new Image;
$images->path = $image->getClientOriginalName();
$product->images()->save($images);
}



--------------------------------------------------------------
قسمت دوم سوال :

اینکه تصاویر رو بصورت ارایه در یک فیلد از products ذخیره کنم بهتره یا اینکه یک جدول جدا برای تصاویر اینجاد کنم و رابطه hasmany برقرار بشه ؟

البته ذخیره بصورت ارایه و واکشی تصاویر دردسرش بیشتره . اما کدوم راه بهینه تره ؟


---------------------------------------------

plague
چهارشنبه 06 فروردین 1399, 13:30 عصر
1 - نمیدونم روش بهتر از چه نظر میگید روش بهتر ولی میتونی یکدفعه همه عکس ها رو بریزی تو دیتبایس , البته بازم نیازه قبلش یک حلقه داشته باشی که همه عکس ها رو بریزه توی یک آرایه مناسب بعد آرایه رو بریزی تو دیتبایس

https://stackoverflow.com/questions/12702812/bulk-insertion-in-laravel-using-eloquent-orm

2 - ریختن چندین مورد توی یک فیلد هیچوقت راه حل مناسبی نیست ... جدول جدا بزار

pary_daryayi
پنج شنبه 07 فروردین 1399, 09:13 صبح
ممنونم .
در مورد ارتباط جدول محصولات و دسته بندی هم سوال داشتم .

جدول دسته بندی من به این شکل هست :
هر دسته ، زیر دسته هایی درخودش داره که با parent_id مشخص شده .
در مورد منطق کار :
یک : اگر دسته اصلی حذف بشه ، باید زیر دسته ها هم حذف بشن ؟ بهتره این با کدنویسی انجام بشه یا اینکه ارتباط cascade بصورت internal درون خود جدول دسته بندی اینجاد کنم ؟
دوم : هر دسته متعلق به یک محصولی هست . ( هر محصول فقط یک دسته داره ) اگر دسته ای حذف بشه ، محصولی که قبلا category_id اون دسته رو داشته ، بهتره فیلدش null بشه ؟
سوم : بطور کلی اجازه ی حذف دسته داده بشه یا اینکه از فیلدی مثل status برای فعال یا عدم فعال بودن دسته استفاده کنم ؟

بهترین روال و منطق کار چیه ؟
-------------------
پ . ن : به این خاطر اینجا سوالو مطرح کردم که مربوط به ارتباط های جداول در لاراول هست و ممکنه مشکل کدنویسی لاراول هم داشته باشم .
با تشکر

plague
پنج شنبه 07 فروردین 1399, 16:37 عصر
1 - زیر دسته ها یا باید حذف بشن , اگه بتونی cascade کنی که بهتره
2 - نال بشه یا به دسته دیگه منتقل بشن
3 - میتونی از softdelete استفاده کنی اگه نمیخای حذف فیزیکی کنی

pary_daryayi
جمعه 08 فروردین 1399, 09:35 صبح
ممنونم از شما .