parhamft
4 سال پیش توسط parhamft مطرح شد
12 پاسخ

جدول محصولات و جست و جوی پیشرفته

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


ثبت پرسش جدید
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش آپدیت شد
0

اگر درست متوجه منظورتون شده باشم و منظورتون پیاده سازی چیزی مثل بخش مشخصات فنی محصولات هست، شاید راه های زیادی داشته باشه پیاده سازیش. پیشنهاد بنده استفاده از رابطه Many To Many بین products (محصولات) و‌ properties (مشخصات فنی) هست.

یعنی سه تا جدول زیر رو خواهید داشت:

- products
- properties
- product-property

و کافیه یک فیلد اضافه هم به جدول واسط یعنی product-property اضافه کنید برای ذخیره value هر یک از این property ها. یعنی ستون هاش میشن:

- id
- product_id
- porperty_id
- value

برای جستجو و فیلتر هم کافیه بعد از نوشتن متدهای برقراری Relation در مدل هاتون، چک کنید که کدوم یک از محصولات اون مشخصه فنی اولا براشون تعریف شده و ثانیا برابر با value مورد نظر هست.


parhamft
تخصص : برنامه نویس لاراول
@parham.ftehrani 4 سال پیش مطرح شد
0

@mhyeganeh
یعنی جدول properties باید همه مشخصات همه دسته بندی محصولات رو داشته باشه؟
اون مقدار value تو جدول واسط رو متوجه نشدم برای چیه


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

یکسری از خصوصیات بین همه محصولات مشترک هست که اونارو توی جدول products ذخیره میکنی. اما محصولاتی هستن که علاوه بر خصوصیات مشترک با سایر محصولات یکسری خصوصیات منحصر به فرد دارند و برای ذخیره خصوصیات منحصر به فردشون برحسب دسته بندی شون براشون خصوصیات تعریف کرده و در یک جدولی خصوصیاتشونو ذخیره میکنی. تبعا هر دسته بندی خصوصیات خاص خودشو داره و باید فرم هاشون منحصر به فرد باشه اما شما که نمیتونی برای فرض هزار محصول هزار تا فرم درست کنی. مثالی میزنم: اگر شما بخوای مشخصات منحصر به فرد گوشی موبایلو سیو کنی در ابتدا در صفحه فرم دسته بندی گوشی موبایلو انتخاب میکنی بعد یه سرچ در جدول خصوصیات منحصر به فرد زده شده و تمام خصوصیات گوشی موبایلو خونده و برحسب نوع خصوصیت فرم مربوطه با کنترلرهاش ساخته شده. در اینجا جستجو در جدول properties زده میشه بعد از پر کردن فرم مربوطه و ارسال مقادیر در جدول product-property سیو میشن.


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

یعنی جدول properties باید همه مشخصات همه دسته بندی محصولات رو داشته باشه؟ همه رو نه.در بالا هم اشاره کردم یکسری از مشخصات که بین همه مشترکه مثل قیمت و .... اما یکسری برای هر دسته بندی خاصه. مثل گوشی موبایل و یک جفت دمپایی یک خصوصیاتی مشترک و یه خصوصیاتی مشترک نیست خصوصیات نامشترک رو در جدول properties ذخیره میکنی.
اون مقدار value تو جدول واسط رو متوجه نشدم برای چیه: خوب هر خصوصیت در هر دسته بندی برای هر محصول طبعا یه مقداری داشته باشه که برای ذخیره اون مقدار از جدول product-property با فیلدی value استفاده میشه.


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

البته تمام ماجرا این که گفتیم نبود یه جزئیاتی هم هست که گفته نشده اما کار سختی هم نیست با مقداری مطالعه و سوال پرسیدن میشه انجامش داد. در دوره پروژه محور لاراول این مورد کامل گفته شده.


parhamft
تخصص : برنامه نویس لاراول
@parham.ftehrani 4 سال پیش مطرح شد
0

@hosseinshirinegad98
توی دوره پروژه محور راکت این مورد که شما فرمودید توضیح داده شده؟
جست و جوی پیشرفته هم توضیح داده شده کامل؟؟


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

ثبت مشخصات برای محصولات توضیح داده شده اما متاسفانه جستجوی پیشرفتش که تو سرفصل های این دوره گفته نشده. من این دوره رو خریدم و هنوز به اون بخشش نرسیدم. میتونید به حسام پیام بدید و بیشتر در جزئیات کار قرار بگیرید. من این قسمت ثبت ویژگی و جستجوی پیشرفتشو در یک سایت دیگه در قالب طراحی سایت دیجی کالا خوندم . ادرسش سایت ایده پردازان جوان بود. 120 ساعت فیلم اموزشی پیاده سازی سایت دیجیکالا. قیمت 350 تومن. تخفیف 40 درصدی هم داشت


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
parhamft
تخصص : برنامه نویس لاراول
@parham.ftehrani 4 سال پیش مطرح شد
محمدحسن یگانه
تخصص : Full-Stack Web Developer Freel...
@mhyeganeh 4 سال پیش مطرح شد
0

یعنی جدول properties باید همه مشخصات همه دسته بندی محصولات رو داشته باشه؟

بله. هر مشخصه فنی که وجود داره اینجا تعریف میشه. حالا اگر میخواید برای هر دسته بندی هم بصورت خاص تعریف کنید که فلان مشخصات فنی وجود داشته باشند، کافیه علاوه بر رابطه بین products و properties که قبلا عرض کردم، یک رابطه Many to Many هم بین categories و properties ایجاد کنید.

اون مقدار value تو جدول واسط رو متوجه نشدم برای چیه؟

همون طوری که جناب شیری نژاد هم اشاره کردند، برای ذخیره مقدار اون مشخصه فنی هست. هر مشخصه فنی یک label داره که در جدول properties تعریف میشه و یک value داره که در جدول واسط محصول و مشخصه فنی تعریف میشه. مثلا وزن: ۱۲۶ گرم / رنگ: قرمز / ظرفیت باتری: ۳۵۰۰


حسین شیری نژاد
تخصص : programmer
@hosseinshirinegad98 4 سال پیش مطرح شد
0

قربونت موفق باشی


parhamft
تخصص : برنامه نویس لاراول
@parham.ftehrani 4 سال پیش مطرح شد
0

@mhyeganeh
خیلی ممنونم


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

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