Awmx
3 سال پیش توسط Awmx مطرح شد
7 پاسخ

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

سلام دوستان
یه سایت خدمات ارزی داریم که خدمات مختلفی رو ارائه میده مثل خرید و فروش ارز..گیف کارت..خرید از سایت های خارجی و....
روش درست اینه برای ثبت سفارش هر یک از خدمات , یک جدول اختصاصی باید ایجاد بشه؟ یا کل سفارشات باید داخل یک جدول ثبت بشه؟
چون هر کدوم از خدمات اطلاعات خاص خودشونو دارن.. همه رو بخوایم داخل یک جدول قرار بدیم یجورایی انگار باید مثلا ۵۰ تا فیلد برای تیبل ایجاد کنیم
البته میشه بصورت ارایه ذخیره کرد اما نمیخوام اینطور باشه


ثبت پرسش جدید
رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش آپدیت شد
1

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


Awmx
@awmx 3 سال پیش مطرح شد
0

@rezajahangir
ساختار جدول اصلی به چه صورت باید باشه؟
به عنوان مثال ما یه جدول داریم و یه فیلد user_id‍ ایجاد میکنیم و رابطه شو با جدول کاربر بر قرار میکنیم
حالا اینجا ما سه تا جدول داریم به جز جدول اصلی, این رابطه چطور باید ایجاد بشه؟


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
1

سلام
برای ارتباط این دو جدول مثلا میتونید یک فیلد درست کنید در جدول پزشک که آیدی کاربر رو از اون جدول کاربران ذخیره کنه


Awmx
@awmx 3 سال پیش مطرح شد
0

@gomnam
زمانی که تنها دو جدول داشته باشیم بله درسته اینکار رو میشه انجام داد
اما اینجا ما یک جدول برای ذخیره موارد مشترک داریم و سه جدول برای ذخیره اطلاعات متفاوت


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

@awmx
نه اشتباه میکنید ...
در تمام جداول متفاوت آیدی اون کاربر ذخیره میشه .


علیرضا کفایتی
تخصص : برنامه نویس laravel, vue.js
@alirezakefayati 3 سال پیش مطرح شد
0

بگذارید براتون مثالی دیگر جهت ارتباط جداول بزنم ...
فرض کنید یک جدول داریم جدول کاربران ، جدول مدیران ، جدولی جدا برای سطح دسترسی مدیران و جدولی برای مقالات منتشر شده کاربران و جدولی هم برای کاربران مسدود شده (صرفا یک مثال است و این تعداد جدول اصلا منطقی نیست)

اول میخواهیم جدول کاربران که جدول اصلی هست رو به مدیران متصل کنیم . همانطور مشخص است باید در ستونی id اون کاربر رو در جدول مدیران ذخیره کنیم . حالا ما به اطلاعات اون مدیر میتونیم دسترسی داشته باشیم .
در مرحله دوم میخواهیم جدول مدیران رو به جدول سطح دسترسی متصل کنیم . باید یک ستون در جدول دسترسی ها باشد که id اون مدیر داخلش قرار بگیرد . در جدول مقالات منتشر شده کاربران هم که باید در ستونی به اسم نویسنده id اون کاربر رو ذخیره کنیم .
همچنین در جدول کاربران مسدود شده هم باید id اون کاربر رو ذخیره کنیم .


رضا جهانگیر
تخصص : Full-Stack Developer
@rezajahangir 3 سال پیش مطرح شد
0

@awmx
شما داخل جدول اصلی فیلدهایی که برای همه مشترک هست رو تعریف کنید.
بعد داخل جداول واسط با استفاده از کلید خارجی با جدول اصلی ارتباط برقرار کنید.
طبق مثالی که واستون زدم، جدول users میشه جدول اصلیتون. حالا داخل تمام جداول واسط باید دستور زیر، به اضافه فیلدهایی که برای هر جدول مورد نیاز هست رو بنویسید.

$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');

امیدوارم مفید بوده باشه.
موفق باشید.


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

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