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

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

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


ثبت پرسش جدید
امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش آپدیت شد
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.1442 5 سال پیش مطرح شد
0

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


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

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


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

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


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

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

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


امین محمدزاده
تخصص : برنامه نویسی وب - Laravel
@amin.webdesign 5 سال پیش آپدیت شد
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.samaee 5 سال پیش مطرح شد
0

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


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

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


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

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