سلام دوستان
یه سایت خدمات ارزی داریم که خدمات مختلفی رو ارائه میده مثل خرید و فروش ارز..گیف کارت..خرید از سایت های خارجی و....
روش درست اینه برای ثبت سفارش هر یک از خدمات , یک جدول اختصاصی باید ایجاد بشه؟ یا کل سفارشات باید داخل یک جدول ثبت بشه؟
چون هر کدوم از خدمات اطلاعات خاص خودشونو دارن.. همه رو بخوایم داخل یک جدول قرار بدیم یجورایی انگار باید مثلا ۵۰ تا فیلد برای تیبل ایجاد کنیم
البته میشه بصورت ارایه ذخیره کرد اما نمیخوام اینطور باشه
سلام.
شما باید موارد مشترک رو داخل یک جدول ذخیره کنید و مواردی که واسه هر مورد فرق میکنه رو داخل جداول جداگانه ذخیره کنید و بعد ارتباط بین جدول ها رو برقرار کنید.
من با یک مثال ساده خدمتتون عرض میکنم تا راحت تر متوجه بشین.
فرض کنید ما داخل سایتمون سه نوع کاربر داریم: مدیر، دکتر، بیمار.
مواردی که بین همه ی کاربرها مشترک هست میتونه فیلدهایی مانند نام، نام خانوادگی، کدملی، شماره تماس و ...
مواردی هم هست که مثلا فقط برای دکتر هست، مانند: تخصص، مدرک تحصیلی و ...
پس بهتر یه جدول جداگانه برای دکتر تعریف بشه و مواردی که متفاوت هست داخل این جدول ذخیره بشه و در آخر ارتباط رو برقرار کنیم.
موفق باشید.
@rezajahangir
ساختار جدول اصلی به چه صورت باید باشه؟
به عنوان مثال ما یه جدول داریم و یه فیلد user_id
ایجاد میکنیم و رابطه شو با جدول کاربر بر قرار میکنیم
حالا اینجا ما سه تا جدول داریم به جز جدول اصلی, این رابطه چطور باید ایجاد بشه؟
سلام
برای ارتباط این دو جدول مثلا میتونید یک فیلد درست کنید در جدول پزشک که آیدی کاربر رو از اون جدول کاربران ذخیره کنه
@gomnam
زمانی که تنها دو جدول داشته باشیم بله درسته اینکار رو میشه انجام داد
اما اینجا ما یک جدول برای ذخیره موارد مشترک داریم و سه جدول برای ذخیره اطلاعات متفاوت
بگذارید براتون مثالی دیگر جهت ارتباط جداول بزنم ...
فرض کنید یک جدول داریم جدول کاربران ، جدول مدیران ، جدولی جدا برای سطح دسترسی مدیران و جدولی برای مقالات منتشر شده کاربران و جدولی هم برای کاربران مسدود شده (صرفا یک مثال است و این تعداد جدول اصلا منطقی نیست)
اول میخواهیم جدول کاربران که جدول اصلی هست رو به مدیران متصل کنیم . همانطور مشخص است باید در ستونی id اون کاربر رو در جدول مدیران ذخیره کنیم . حالا ما به اطلاعات اون مدیر میتونیم دسترسی داشته باشیم .
در مرحله دوم میخواهیم جدول مدیران رو به جدول سطح دسترسی متصل کنیم . باید یک ستون در جدول دسترسی ها باشد که id اون مدیر داخلش قرار بگیرد . در جدول مقالات منتشر شده کاربران هم که باید در ستونی به اسم نویسنده id اون کاربر رو ذخیره کنیم .
همچنین در جدول کاربران مسدود شده هم باید id اون کاربر رو ذخیره کنیم .
@awmx
شما داخل جدول اصلی فیلدهایی که برای همه مشترک هست رو تعریف کنید.
بعد داخل جداول واسط با استفاده از کلید خارجی با جدول اصلی ارتباط برقرار کنید.
طبق مثالی که واستون زدم، جدول users میشه جدول اصلیتون. حالا داخل تمام جداول واسط باید دستور زیر، به اضافه فیلدهایی که برای هر جدول مورد نیاز هست رو بنویسید.
$table->unsignedBigInteger('user_id');
$table->foreign('user_id')->references('id')->on('users')->onDelete('cascade');
امیدوارم مفید بوده باشه.
موفق باشید.
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟