آفلاین
user-avatar

ساختار کد تخفیف

2 سال پیش
توسط developer آپدیت شد
آفلاین
user-avatar
علیرضا جوکار ( 15205 تجربه )
2 سال پیش
تخصص : web developer

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

آفلاین
user-avatar
developer ( 35352 تجربه )
2 سال پیش
تخصص : برنامه نویس

بنظرم دو تا فیلد بذار مثلا user_id اگه برای همه هست user_id خالی باشه، ولی اگه واسه فرد خاصی هست آیدی رو بذار توش،
و product_id اگه برای همه محصولات هست خالی باشه و اگه واسه یک محصول خاص هست آیدی محصول رو بذار توش
و توی کنترلر شرط بذار اگه خالی بودن اینا بره واسه همه اجرا کنه
واسه تعداد دفعات هم یک جدول ثانویه درست کن هربار فرد استفاده کرد با رابطه many to many ثبت بشه

آفلاین
user-avatar
علیرضا جوکار ( 15205 تجربه )
2 سال پیش
تخصص : web developer

@alirezasafdari
با سلام راه حل خوبی بود ولی اگه مثلا میخواستیم به 50 تا محصول این کد تخفیف رو اختصاص بدیم اون موقع تا کد تخفیف رو وارد میکنه باید ای دی اون محصول رو بفرستم بصورت ای جکس سمت سرور و سمت سرور چک کنم که ایا ای دی این محصول جزو اون تخفیف هست یا نه یعنی یه حلقه که حداکثر 50 بار چک میشه ، این یکم درست نیست و سرعت خیلی میاد پایین(50 تا مثاله در داده های بیشتر خب افت شدید تری هست)
مثلا اگه یه کد تخفیف داشته باشیم به نام test که فیلد product_id شامل یه آرایه یا یه آبجکت باشه بصورت زیر مثلا:
[11,15,18,14,13,141,1002,155,177,166,155,188,177]
من باید بیام ای دی محصولی که داخلش کد تخفیف رو وارد کرده از بین این ارایه پیدا کنم و پردازشش یکم طول میکشه دیگه درسته؟
فکرشم کردم اگر جدول واسط بزارم افزونگی داده خیلی زیاد میشه
مثلا اینجوری میشه که:

discount_id          product_id
 1                            11
 1                            15
 1                            18
 1                            14
 1                            13
 1                            141

بازم اینجوری بهش نمیاد درست باشه

آفلاین
user-avatar
developer ( 35352 تجربه )
2 سال پیش
تخصص : برنامه نویس

@alirezajokar1
خب در پروژه های واقعی اگه بخوای مثلا به 50 تا محصول تخفیف بدی اینها یک شباهتی با هم دارن، میتونی به محصولاتت یک برچسب بزنی مثلا این 50 تا محصول فلان برچسب رو دارن، و کد تخفیف رو به اون برچسب بدی و موقع ایجکس فقط کافیه چک کنی آیا اون محصول اون برچسب رو داره یا نه و نیازی به 50 بار چک کردن هم نیست

برای ارسال پاسخ باید وارد سایت شوید