omid dehghan
5 سال پیش توسط omid dehghan مطرح شد
4 پاسخ

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

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


ثبت پرسش جدید
وحید
تخصص : Fullstack
@forughi.vahid 5 سال پیش مطرح شد
0

@omidxplimbo
اگر تفاوت زیادی با هم ندارن خوب از همون یک جدول استفاده کنید و اشکالی نداره یسری از فیلد ها خالی بمونه، با جدول سفارش ها هم ارتباطتون one to many میشه،
اگر تفاوت ها خیلی زیادن و تعداد زیادی از فیلد ها رو باید خالی بزارید ( که بعید میدونم این طور باشه ) ، شما دو تا راه دارید ، راه اول همینه که خودتون گفتید ، یعنی دو تا جدول جدا طراحی کنید و ارتباطتون با جدول سفارشات از نوع one to many polymorphic میشه .
راه دوم اینه که یک جدول پروداکت درست کنید و فیلد های مشابه رو توش بزارید و دو تا جدول هم برای هر کدوم از انواع محصولتون پیاده کنید که هر کدوم یه ارتباط one to one با جدول پروداکت داره ، جدول سفارش و جدول سفارشات هم ارتباط one to many دارن.
روش ها از اول به آخر کمترین پییچیدگی کد ،کمترین مقدار فشار روی جداول دیتابیس و بیشترین فضای رم اشغالی رو داریم . نمیشه همینجوری گفت کدوم بهینه تره ، کاملا به شرایط فیلد ها و ترافیکتون بستگی داره ، ولی به صورت کلی بخوام بگم برای پروژه های کوچک تر از روش اول و برای پروژه های بزرگ تر از روش آخر استفاده میشه. البته بازم میگم مطابق با شرایط متفاوته.


علی اسماعیلی
تخصص : php Laravel
@aliesmaili.code 5 سال پیش مطرح شد
0

سلام تفاوتی نداره جفتشون محصول هستند یه قیمیتی داره توضیحاتی داره یه سری تگ داره و ...
میتونید یه فیلد دیگه بزارید که مشخص کنید این محصول دانلودی یا نه، کار خاصی قرار نیست اتفاق بیافته


omid dehghan
@omidxplimbo 5 سال پیش مطرح شد
0

ممنون فکر کنم پس یک جدول درست کنم بهینه تر باشه کلا برای این کار


رضا جلیلیان
تخصص : لطفا تخصص خود را وارد کنید
@rezajalilian 5 سال پیش مطرح شد
0

یه جدول باشه و بعضی از فیلد ها خالی بمونن بهتره با از استفاده از روابط هم ارتباطش با سایر جدول هارو برقرار میکنی و اگه بخوای تغیراتی رو به وجود بیاری یه زمانی دردسر کمتری داری


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

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