جستجو در بخش : سوال جواب منابع اسلامی لغت نامه ها قوانین و مصوبات نقل قل ها
×

فرم ورود

ورود با گوگل ورود با گوگل ورود با تلگرام ورود با تلگرام
رمز عبور را فراموش کرده ام عضو نیستم، می خواهم عضو شوم
×

×

آدرس بخش انتخاب شده


جهت کپی کردن میتوانید از دکمه های Ctrl + C استفاده کنید
رویداد ها - امتیازات
در حال بارگذاری
×

رویداد ها - امتیازات

برای بررسی عملکرد فعالیت و امتیازات خود باید در وب سایت وارد باشید. در صورت عضویت از بخش بالای صفحه وارد شوید، در غیر این صورت از دکمه پایین، مستقیم به صفحه ثبت نام وارد شوید.

×
×
×

دلیل درخواست بستن پست

کلیه پست هایی که جنبه تبلیغاتی داشته، محتوای اسپم و بی مفهوم در این دسته قرار میگیرند. همچنین پست هایی که به منظور گرفتن بک لینک درج می شوند شامل این مورد هستند.
حاوی مفاهیم غیر اخلاقی، سیاسی و یا توهین آمیز. کلیه پست هایی که از نظر محتوایی نیاز به بررسی و یا حذف شدن دارند در این دسته قرار می گیرند.
محتوایی با عدم جزئیات کافی و مورد نیاز. کلیه پست هایی که منظور نویسنده به وضوح مشخص نیست و نیازمند توضیحات و جزئیات بیشتر می باشند در این دسته قرار می گیرند.
محتوایی بی ربط با موضوعیت سرفصل کلی. کلیه پست هایی که از منظر مفهوم و مضمون ارتباطی با عنوان اصلی سوال ندارند در این دسته قرار می گیرند.
محتوایی دلخواه و بر پایه سلیقه. کلیه پست هایی که یک پاسخ مشخص ندارند و متوانند چندین پاسخ متفاوت و صحیح داشته باشند که کاملا مبتنی بر نظر شخصی افراد هستند در این دسته قرار می گیرند.
محتوایی در حوزه خیلی وسیع. کلیه پست هایی که از نظر محتوایی در یک حوزه ی وسیعی قرار دارند و مشخصا به یک موضوع خاصی اشاره ندارند که پاسخدهی به آن ها مستلزم تشریح مفاهیمی کلی می باشند در این دسته قرار می گیرند.
قبلا در لام تا کام مطرح شده. پست هایی که دقیقا با همین محتوا و مضمون قبلا در وب سایت لام تا کام درج شده اند، با ذکر آدرس منبع تکراری با پست حال حاضر شامل این دسته هستند. تکراری است با:
به سایر دلایل، نیازمند به بررسی توسط مدیر. به هر دلیل غیری که پست را نیازمند بررسی توسط مدیر کرده، با ذکر دلیل، در این دسته قرار میگیرد.
ارسال رای بستن

ساختار جدول سفارشات


3
0
842

سلام دوستان دارم روی یه سایت خدمات ارزی کار میکنم که توی ثبت سفارشات به مشکل برخوردم. این سایت ۳ سرویس ثابت داره خدمات رمز ارز − ارز دیجیتال و گیف کارت و همچنین قسمتی که کاربر سرویس مدنظرشو رو ایجاد میکنه. خب حالا هر کدوم از این سرویس ها اطلاعات خاص خودشونو دارن پس نمیشه تنها یک جدول برای ثبت اطلاعات هر سفارش در نظر گرفت. من یک جدول Order ایجاد کردم که اطلاعات مشترک هر سفارش مثل قیمت یا تعداد ذخیره بشه و برای هر سرویس هم یک جدول اختصاصی ایجاد کردم برای ذخیره اطلاعات خاص اون سرویس

این ساختاری که من در نظر گرفتم درسته بنظرتون؟ و راهکار بهتری ندارین؟

تکنولوژی لاراول
سوال شده در مجتبی دلشاد
275 امتیاز

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 سال قبل

500 کاراکتر باقی مانده

1 جواب

4

همانطور که در کامنت ها هم عرض کردم، ساختاری که خودتون فرمودید اوکی هست و به شکلی میشه گفت مدل Morph هست. یعنی یک جدول کلی داریم که تمام order ها رو نگهداری میکنه + نام و آیدی مرتبط با هر سرویس. به شکلی میشه FK روی چندین جدول:

توضیح تصویر

حالا هر کدوم از اون جدولها (سرویس ها) باز آیدی orders رو نگهداری میکنن. اگه بخوام مثال بزنم، برای یک order از نوع رمز ارز، و یک order از نوع ارز دیجیتال، همچین چیزی خواهیم داشت:

// orders
+----+---------+----------+---------+------------------+------------+
| id |  price  |  number  | user_id |   service_name   | service_id | ...
+----+---------+----------+---------+------------------+------------+
| 15 | 2000    | 50       | 34      | cryptocurrency   | 10         | ...
| 16 | 7500    | 10       | 271     | Digital_currency |  5         | ...
+----+---------+----------+---------+------------------+------------+

// Cryptocurrency
+----+----------+
| id | order_id | ...
+----+----------+
| 10 | 15       | ...
+----+----------+

// Digital_currency
+----+----------+
| id | order_id | ...
+----+----------+
| 5  | 16       | ...
+----+----------+

پس همونطور که واضح هست، ایدی جدول order رو در جداول سرویس ها و برعکس داریم نگهداری میکنیم. شایان ذکره که نام جدول هر سرویس هم به صورت ENUM باید تعریف شده باشه در جدول order که قابل تشخیص باشه service_id متعلق به کدوم جدول هست.

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

جواب داده شده در سعید مرادی
1933 امتیاز

1
ممنونم توضیحات کاملی بود? ــ مجتبی دلشاد در 3 سال قبل

500 کاراکتر باقی مانده


جواب شما
     
.....
×

×

جعبه لام تا کام


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

تبلیغات توضیحی


داپ اَپ اولین پلتفرم کش‌بک در ایران
اگه میخوای از خریدهایی که میکنی، پاداش نقدی دریافت کنی داپ اَپ رو نصب کن.

تبلیغات تصویری