سلام دوستان خسته نباشید
یک بخش داریم به اسم درخواست ها که 3 تا نوع درخواست داریم.
هر نوع درخواست حدودا 35 تا فیلد داره، و اینم اضافه کنم که حدود 70 درصد فیلد این درخواست ها مشترک هستند. بنظرتون دیتابیس به چه صورت طراحی بشه بهینه و خوبه؟
این درخواست ها در مورد ارسال وسایل هستش و هر کدوم از درخواست ها یه فرستنده تا و یه گیرنده
من توی ذهنم این هستش که یه جدول برای درخواست بزنم که چند تا فیلد مثل تاریخ و نوع درخواست و... هستش. برای فیلد های مشترک گیرنده یه جدول و همچنین برای فرستنده.
حالا اون فیبد های اختصاصی که هستند برای هر درخواست یه جدول دیگه.
ممنون میشم راهنمایی کنید.
یک سوال تقریبا مشابه در تاپیک دیگهای مطرح شد
شاید جواب دقیق این سوال نباشه اما چکش کنید
سلام وقت بخیر
اگر بتونید روابط مد نظرتون رو داخل یه flowchart رسم کنید و بفرستید دوستان بهتر می تونن کمکتون کنن.
@Mohammad79
به نظر من برای ثبت درخواست یک جدول ایجاد کنید. که توی این جدول موارد زیر وجود داشته باشه (می تونید فیلدهای بیشتری رو اضافه کنید )
requests
----------
id
from_id
to_id
code
date
...
froms
---------
id
firstname
lastname
Address
....
toes
--------
id
firstaname
lastname
address
....
--------
users
می تونید یه رابطه بین اینها بر قرار کنید به صورت many to many با کاربران و from و to
@Mohammad79
@mohaligateway
بسیار خوب، پس یه جداول 1) جدول درخواست 2)جدول فرستنده 3)گیرنده 4)مدارک و از طریق آیدی ها به هم لینک کنم.
یه سوال دیگه برای اینا کوئری به چه صورتی بنویسم؟ تمام اطلاعات گیرنده و فرستنده روی یه آرایه ذحیره کنم بعد موارد مورد نیاز برای هر کدومش کوئری بزنم؟
یه موردی الان به ذهنم رسید اینه که کاربر ها که نقش فرستنده و گیرنده دارن ثبت نام باید بکنن ؟
چه فیلدهایی برای ثبت نام وجود داره آیا فیلد های غیر مشترک هم توی ناحیه کاربری ذخیره میشن ؟
@Mohammad79
@mohaligateway
کاربر فقط یک بار ثبت نام میکنه. فرم درخواست ها برای ثبت نام نیستش. یه کاربر بخواد یه درخواستی ثبت کنه حتما باید فرستنده و گیرنده پر کنه.
اطلاعات ثبتنام هم نام، ایمیل، رمز هستش
شما باید یک رابطه one to manay بین جدول users و requests ایجاد کنید.
و یک رابطه one to one بین جدول requests و froms ایجاد کنید.
و یک رابطه one to one بین جدول requests و toes داریم.
برای کوئری ها اگه خروجی مد نظرتون رو بگید بهتر میشه کمک کرد.
@Mohammad79
می تویند از این لینک استفاده کنید.
https://laravel.com/docs/8.x/eloquent-relationships
@Mohammad79
ببخشید تا حالا از Codeigniter استفاده نکردم. شاید دوستان بتونن کمکتون کنن.
@hesammousavi
@ali.bayat
@mohaligateway
برای دیتابیس الان میخوام این کارو بکنم بنظرتون درسته؟
جدول درخواست: اطلاعات کلی مثل شماره، تاریخ، نوع، چه کسی درست کرده و ...
جدول: جزئیات: اطلاعات گیرنده و فرستنده بعضی هاشون مثلا توی یه نوع درخواست نیاز نیست ولی میخوام توی دیتابیس نال باشه ولی توی ثبت کنترل کنیم که چه چیز بره و ...
جدول فایل: اگه کسی فایلی آپلود کرده بره اونجا.
الان کسی بخواد درخواست ثبت کنه بعد از پر کردن یه اطلاعات میره توی جدول اصلی میشنه بعد میره توی جدول جزئیات یدون رکورد برای فرستنده ثبت میشه و یکی دیگه برای گیرنده.
بنظرتون این کاری که الان کردم درست هستش؟ بنظرم زیاد نرمال شد😎
@mohaligateway
یا اصلا برای سه تا نوع درخواست، واسه هر کدومش یدونه جدول بسازم.که تعداد فیلد ها تقریبا 30 تا خواهد شد.
بنظرم این ساده و بهتر هستش؟
چند تا نکته:
1- برای from و to حتما یه یونیک بزارید برای اینکه آدرس ها یکی باشی تعداد سطر ها بالا نره.
2- جدول فایل رو میشه حذف کرد. اگه کاربر فایل میفرسته لینکش رو برای اون ذخیره کنید. اگه توی درخواست ها هستش مسیر رو توی درخواست ها بزارید.
3- برای جدول جزئیات درخواست می تونید از metas استفاده کنید که اگر جزئیات داشت در اون قسمت قرار بگیره و گرنه بی خودی حجم جدول را بالا نبره ( البته می تونید توی requests هم بزنید)
4- برای جدول درخواست اصلی هم یه from_id و to_id قرار بدید بعد جدول ها رو به هم ارتباط بدید.
5- اگر اطلاعات قرار هست ارسال بشه برای کاربر پس باید کاربر از قبل لاگین کرده باشه و یه id داشته باشه ؟ مثل اسنپ کاربر لاگین کرده و یه لوکیشن ثبت می کنه برای درخواست هاش.
6- یه ثبت درخواست چندین تا آدرس می تونه داشته باشه ؟
@Mohammad79
1- اوکی پس برای هر کدومش یه جدول میزنم و یونیک هارو به جدول اصلی اضافه میکنم.
2- جدول فایل جای دیگه هم استفاده میکنم.
3- metas ؟؟
4- پس برای گیرنده و فرستده واسه هر کدومش یه جدول بزنم.
5- لازمه ی ثبت درخواست لاگین هستش.
6- هر درخواست یه گیرنده داره و یه فرستنده.
@mohaligateway راستی ممنون از لطف شما که وقت میزارید و منو راهنمایی میکنید🙏❤️
1- درسته
2- درسته
3- به جدول های رابط متا می گن موارد غیر ضروری می تونید توی این جدول قرار بدید و به جدول اصلی وصل کنید.
4- درسته
5- درسته
6- درسته
@Mohammad79
ببینید این دو تا لینک کارتون رو راه می اندازه
https://forum.codeigniter.com/thread-65777.html
https://forum.codeigniter.com/thread-74126.html
من خودتم تا حالا با codeigniter کار نکردم.
@Mohammad79
آیا مایل به ارسال نوتیفیکیشن و اخبار از طرف راکت هستید ؟