پایگاه داده یک فروشگاه
نویسنده : رضا قربانی | زمان انتشار : 09 اسفند 1399 ساعت 18:50
جهت انجام پروژه های دانشجویی و یا تمرینهای برنامه نویسی رشته کامپیوتر میتوانید به آی دی تلگرام زیر پیام دهید
@AlirezaSepand
طراحی پایگاه داده در فروشگاه های اینترنتی به روش های متفاوتی انجام می شود ولی همواره باید سعی کنیم روشی را انتخاب کرده که کمترین میزان فضا از پایگاه داده را اشغال کند. این موردی که شما فرمودید مشابه ساختار فروشگاه ساز ووکامرس وردپرس می باشد ولی عملا می توانید با روش زیر پیاده سازی متنوع تری ارائه داده و خروجی مشابه ووکامرس دریافت کنید. (اما حجم خیلی کمتری از پایگاه داده اشغال می شود)
طراحی پایگاه داده
اگر شما در حال نوشتن یک سی ام اس اختصاصی فروشگاهی هستید یکی از روش های طراحی پایگاه داده فروشگاه اینترنتی می تواند به صورت زیر باشد:
جدول دسته بندی (categories)
این جدول شامل دسته بندی های تو در تو (سلسله مراتبی) می باشد. مشابه سایت روکسو
id // integer title // varchar parent_id // integer ---> برای دسته بندی های تو در تو created_at // timestamp
جدول ویژگی ها (attributes)
این جدول شامل ویژگی هایی است که برای هر دسته بندی تعریف می شود. مثلا دسته بندی کفش شامل یک سری ویژگی مانند سایز، رنگ و ... است و هر یک از این ویژگی ها شامل یک سری مقادیر هستند. (این مورد به صورت کامل در دوره آموزش ساخت فروشگاه اینترنتی مشابه دیجی استایل در لاراول تدریس و پیاده سازی شده است)
id // integer title // varchar created_at // timestamp
حال باید یک جدول برای مقادیر ویژگی تعیین کنید.
جدول مقادیر ویژگی (attribute_values)
وظیفه این جدول نگهداری مقادیر ویژگی جدول attributes است (یعنی یک رابطه یک به چند با جدول attributes برقرار کرده است)
id // integer attribute_id // integer ---> کلید خارجی مرتبط با جدول attributes title // varchar created_at // timestamp
سپس شما می توانید جدول ویژگی را به جدول categories (دسته بندی ها) ارتباط دهید. این ارتباط از نوع چند به چند می باشد (یعنی هر دسته بندی می تواند چندین ویژگی را به ارث ببرد و هر ویژگی می تواند به چندین دسته بندی مرتبط شود)
جدول میانی یا pivot ویژگی ها و دسته بندی ها (attribute_category)
این جدول برای ذخیره سازی ویژگی های هر دسته بندی مورد استفاده قرار می گیرد و به صورت زیر تعریف می شود:
attribute_id // integer ---> کلید خارجی که رابطه با جدول attributes دارد category_id // integer ---> کلید خارجی که رابطه با جدول categories دارد
پس از انجام این کار کافیست شما جدول محصولات را به جدول دسته بندی متصل کنید.
جدول محصولات (products)
در این جدول یک رابطه بین محصولات و دسته بندی ها ایجاد می شود که هر دسته بندی از طرفی با یک سری ویژگی ارتباط دارد و هر ویژگی با یک سری مقادیر! البته بسته به نیاز خودتان می توانید این جدول را توسعه دهید ولی هدف ارائه کردن کلید خارجی category_id در جدول محصولات بود:
id // integer category_id // integer ----> کلید خارجی که مرتبط با جدول categories price // float .... created_at // timestamp
جمع بندی
با طراحی پایگاه داده فروشگاه اینترنتی خود، مشابه جداول بالا می توانید به ازای هر ویژگی که در دسته بندی ها تعیین می شود، محصولات خود را ویژگی دهید. البته لازم به ذکر است که در صورت نیاز می توانید یک واحد قیمت (price) به مقادیر ویژگی اضافه کرده که به قیمت نهایی یک محصول اضافه شود.
امیدوارم این راهنمایی مشکل شما را برطرف کرده باشید.
منبع: www.roxo.ir