ساختار جدول سفارشات
https://lamtakam.com/qanda/3617/ساختار-جدول-سفارشات 1سلام دوستان
دارم روی یه سایت خدمات ارزی کار میکنم که توی ثبت سفارشات به مشکل برخوردم.
این سایت ۳ سرویس ثابت داره خدمات رمز ارز − ارز دیجیتال و گیف کارت و همچنین قسمتی که کاربر سرویس مدنظرشو رو ایجاد میکنه.
خب حالا هر کدوم از این سرویس ها اطلاعات خاص خودشونو دارن پس نمیشه تنها یک جدول برای ثبت اطلاعات هر سفارش در نظر گرفت. من یک جدول Order
ایجاد کردم که اطلاعات مشترک هر سفارش مثل قیمت یا تعداد ذخیره بشه و برای هر سرویس هم یک جدول اختصاصی ایجاد کردم برای ذخیره اطلاعات خاص اون سرویس
این ساختاری که من در نظر گرفتم درسته بنظرتون؟ و راهکار بهتری ندارین؟
1 | ساختاری که بهش اشاره کردید تقریبا مدل رابطه ای morph هست، و بله ساختار جداولی هم که فرمودید الگوش صحیح هست، فقط پیشنهاد میکنم که در جدول orders حتما یک آیدی از هر جدول + نام هر جدول رو هم نگهداری کنید (برای یک سری از کوئری ها این خیلی بهتون کمک میکنه)، همچنین توی هرکدوم از اون سه تا جدول، باز آیدی orders رو نگه داری کنید. ــ سعید مرادی در 3 سال قبل | ||
2 | ببینید خیلی وابسته هست که اون دیتایی که بین سرویس های شما مشترک نیست رو چه مدل کاری باهاش دارید. اگه کار خیلی خاصی باهاش ندارید و فقط یک سری جاها میخواید نشونش بدید، پیشنهاد میکنم صرفا یه ستون به جدول orders تون اضافه کنید با نام meta_data که تایپش json هست و تمام دیتای مازاد اون سفارش رو به عنوان یک object توی اون ستون بریزید. این مدلی کلا یک جدول دارید برای سفارشاتتون و همه ی دیتای مورد نیاز رو هم میتونید ذخیره داشته باشید ــ ساناز رضایی در 3 سال قبل |
||
این رابطه باید یک به چند باشه؟ و اگه مدل order رو مدل مبدا در نظر بگیریم پس باید داخل هر سه جدول دیگه قطعه کد $table->morphs('ordeable '); رو اضافه کرد. درسته یا برعکس این مورد باید انجام بشه؟ ممکنه با یه قطعه کد توضیح بدید؟ @سعید.مرادی ــ مجتبی دلشاد در 3 سال قبل |
|||
1 | در حال حاضر سر کار هستم، اگه رسیدم خونه و فرصتش بود یک جواب برات مینویسم و مدل رابطه morph رو توضیح میدم. ــ سعید مرادی در 3 سال قبل | ||
@ساناز.رضایی ببینید جدول order رو برای این ایجاد کردم که کاربر بتونه تمام سفارشات رو داخل یک صفحه ببینه دیگه نیاز نباشه صفحات مختلف برای مشاهده سفارشات هر سرویس ایجاد کنم. ــ مجتبی دلشاد در 3 سال قبل |
|||
@سعید.مرادی خیلی ممنون لطف میکنید ــ مجتبی دلشاد در 3 سال قبل | |||
1 | اگه جدول order رو ایجاد صرفا به خاطر اینکه کاربر بتونه سفارشاتش رو توی یک صفحه ببینه، واقعا کار بهینه ای انجام ندادید. چرا که با union کردن اون سه تا جدول میتونستید همین خروجی رو بسازید. طبق توضیحاتتون، دو مدل دیتا دارید الان: 1) دیتای مشترک بین سرویس ها (که دارید توی جدول order نگهداری میکنید) و 2) دیتای اختصاصی هر سرویس. حالا عرض بنده این هست که میتونید اون دیتای اختصاصی رو که برای هر سرویس متفاوت هست رو به صورت یک آبجکت در یک ستون جدید نگهداری کنید. ــ ساناز رضایی در 3 سال قبل |