راکت
ARON
ARON
توسط ARON مطرح شد
حل
7 پاسخ

نوع رابطه ارتباط manyto many

دو ستان من یه جدول محصولات دارم هر محصول میتونه چند تا لوازم جانبی داشته باشه که این لوازم جانبی هم خودشون باز محصولی هستن تو همین جدول نوع پیاده سازی دیتابیسش چجوری میشه؟؟ ارتباطشون چجوری میشه؟


ثبت پرسش جدید
امین محمدزاده
امین محمدزاده
تخصص :برنامه نویسی وب - Laravel
@amin.webdesign6 سال پیشمطرح شد
2

برای این حالتی که میفرمایید چون من این موضوع رو پیاده کردم قبلا پیشنهادم رابطه چند به چند هست چون در واقع شما لوازم جانبی هم به صورت محصول تعریف کردید و در واقع میخواید بین محصولات یه رابطه ایجاد کنید برای همین یه محصول میتونه چند تا لوازم جانبی داشته باشه و یه لوازم جانبی هم میتونه برای چند محصول دیگه ارتباط برقرار کنه
یعنی شما بین جدول محصولات و خودش یه جدول میانی تعریف میکنید به صورتی که دو تا ستون دارید با نامهای product_id و related_id
و در مدل محصولات هم یه رابطه brlongsToMany تعریف میکنید به صورت زیر. مثال :

public function relateds(){
        return $this->belongsToMany(self::class,'product_relateds','product_id','related_id');
}

و اینکه برای افزودن لوازم جانبی برای یک محصول اگه قرار هست به صورت تک تک اضافه کنید از دستور attach استفاده کنید و از sync استفاده نکنید و اگه خواستید ازش یه لوازم جانبی رو حذف کنید اول با دستور contains ارتباطشون رو بررسی کنید که اگه وجود داشت با دستور detach رابطشون رو حذف کنید.
در مورد دستوراتی که گفتم جستجو کنید حساب کار دستتون میاد


سید حسین رضوی
سید حسین رضوی
تخصص :برنامه نویس وب و طراح رابط کاربری
@hossein.r.14426 سال پیشمطرح شد
0

این حالتی که شما فرمودید تقریبا مثل دسته بندی میشه که دسته مادر و زیر دسته هاش همه در یک جدول هستند
یه سرچ بزنید ساخت دسته بندی با لاراول میتونید راحت پیدا کنید


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

@hossein.r.1442
نه مشکل من تو این بخش نیست این بخش نوشتم مشکلی هم ندارم این سوالم در مورد موضوع دیگه ایه


سید حسین رضوی
سید حسین رضوی
تخصص :برنامه نویس وب و طراح رابط کاربری
@hossein.r.14426 سال پیشمطرح شد
0

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


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

یه رابطه یک به چند نیاز داری بین محصول و خودش میشه گفت..

اما اگر لوازم جانبی رو در جدول دیگه ای بذاری، بهتره


امین محمدزاده
امین محمدزاده
تخصص :برنامه نویسی وب - Laravel
@amin.webdesign6 سال پیشمطرح شد
2

برای این حالتی که میفرمایید چون من این موضوع رو پیاده کردم قبلا پیشنهادم رابطه چند به چند هست چون در واقع شما لوازم جانبی هم به صورت محصول تعریف کردید و در واقع میخواید بین محصولات یه رابطه ایجاد کنید برای همین یه محصول میتونه چند تا لوازم جانبی داشته باشه و یه لوازم جانبی هم میتونه برای چند محصول دیگه ارتباط برقرار کنه
یعنی شما بین جدول محصولات و خودش یه جدول میانی تعریف میکنید به صورتی که دو تا ستون دارید با نامهای product_id و related_id
و در مدل محصولات هم یه رابطه brlongsToMany تعریف میکنید به صورت زیر. مثال :

public function relateds(){
        return $this->belongsToMany(self::class,'product_relateds','product_id','related_id');
}

و اینکه برای افزودن لوازم جانبی برای یک محصول اگه قرار هست به صورت تک تک اضافه کنید از دستور attach استفاده کنید و از sync استفاده نکنید و اگه خواستید ازش یه لوازم جانبی رو حذف کنید اول با دستور contains ارتباطشون رو بررسی کنید که اگه وجود داشت با دستور detach رابطشون رو حذف کنید.
در مورد دستوراتی که گفتم جستجو کنید حساب کار دستتون میاد


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

@amin.webdesign
جوابشون مناسب سوال شماست ... اگر که نه ... احتمالا سوال رو درست متوجه نشدم بازم بگید تا بلکه پاسخ بهتری داده بشه


امین محمدزاده
امین محمدزاده
تخصص :برنامه نویسی وب - Laravel
@amin.webdesign6 سال پیشمطرح شد
0

@hatam.samaee
مثل اینکه پاسخ بنده مشکلشون رو حل کرده


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

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