یلدا ادامه داره... ❤️ ۴۰ درصد تخفیف همه دورهها
استفاده از تخفیفهاسلام.
من از MySQL برای دیتابیس فروشگاهی که قراره بسازم میخوام استفاده کنم.
برای ویژگی های محصول معماری جدول MySQL باید به چه شکل باشه که بتونم ویژگی محصول داینامیک (هر دسته متفاوت، کاملا مشابه دیجیکالا) رو اضافه کنم؟
یعنی فرضا دسته کالا های دیجیتال یه زیر مجموعه موبایل داره که اون زیرمجموعه همه کالا هاش یه سری ویژگی مثل (مقدار RAM، کیفیت دوربین، ابعاد صفحه نمایش و...) رو دارن.
حالا کاربر که وارد صفحه محصول میشه قراره این ویژگی ها رو ببینه از طرفی میخوام وقتی کاربر وارد دسته بندی میشه بتونه لیست محصولات اون دسته بندی رو ببینه و بتونه فیلتر کنه (مثلا بگه حداقل Ram مثلا 6 گیگ و حداکثر 12 گیگ باشه، ابعاد صفحه نمایش بین 6 اینچ تا 7 اینچ باشه، دوربین سلفی مثلا از نوع PopUp باشه، سنسور اثر انگشت داشته باشه یا نه و...)
چطور باید این رو طراحی کنم؟
حدس خودم استفاده از رابطه Many to Many هستش اما واقعا گیجم نمیدونم به چه شکل پیاده میشه.
یه روش بهینه میخوام چون کوئری به دیتابیس در ثانیه فوق العاده بالاست.
پیشاپیش مرسی بابت پاسخ هاتون..
یه جدول به صورت key value طراحی کن که به صورت poly morphic باشه. بعدش برای تمامی محصولات (حتی اگه توی جدول های متفاوت باشن) میتونی ازش استفاده کنی. خیلی راحته.
ممنون از @rezajashnsaz0011 و @coaradsupp کلا همه ظاهرا key و value رو پیشنهاد میدن.
الان تو پیام شما @khanzadimahdi نوشتید که از روابط poly morphic استفاده کنم؛ این رو کامل متوجه نشدم.
در کل فرض کنید من با لاراول میخوام سایت رو بنویسم (لاراول نیست اما)
و به صورت key value ذخیره کردم
چطور باید بعدا محصول رو فیلتر کنم؟ هر حالتی فکر کردم نشد که مثلا لیست موبایل هایی رو بگیرم که رم 16 یا 32 دارن و ابعاد صفحه هم 7 و حسگر اثر انگشت هم دارن.
این مدلی که دادم، واسه فیلتر کردن کارتون رو راحت میکنه، چون مقادیر مشخص هستن، ولی به صورت key value ممکنه مقادیر به هر صورتی وارد بشه و توی فیلتر مشکل ایجاد میکنه
@coaradsupp بله الان دیدم ظاهرا روش شما از key value معمولی خیلی بهتره.
اما چه طور میشه مثلا یه کوئری (حتی با الکوئنت لاراول، یا هر چیز دیگه به جز لاراول مثلا Golang) نوشت که بخواد فیلتر کنه؟
در واقع مشکل من همینه، معماری دیتابیس رو میشه به راحتی رد کرد.
مثلا ببینید اگه فرض کنیم همه ویژگی های محصول توی جدول Products قرار بگیرن و به صورت یک ستون (البته خیلی ناکارآمده اما خب واسه مثاله)
مثلا:
Products:
- id
- name
- color
- ram
- screenSize
و خب مثلا خواستیم فیلتر کنیم در لاراول:
$query->where("screenSize", ">" 7);
$query->where("ram", "=", 16);
And so on...
حالا این روش شما که چندین جدول میاد وسط به چه شکل میشه پیاده سازیش؟?
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟