راهنمایی در مورد طراحی درست و بهینه دیتابیس MySQL

php -
2 هفته پیش توسط moha li آپدیت شد
آفلاین
user-avatar
محمد ( 14896 تجربه )
3 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

سلام دوستان خسته نباشید
یک بخش داریم به اسم درخواست ها که 3 تا نوع درخواست داریم.
هر نوع درخواست حدودا 35 تا فیلد داره، و اینم اضافه کنم که حدود 70 درصد فیلد این درخواست ها مشترک هستند. بنظرتون دیتابیس به چه صورت طراحی بشه بهینه و خوبه؟
این درخواست ها در مورد ارسال وسایل هستش و هر کدوم از درخواست ها یه فرستنده تا و یه گیرنده
من توی ذهنم این هستش که یه جدول برای درخواست بزنم که چند تا فیلد مثل تاریخ و نوع درخواست و... هستش. برای فیلد های مشترک گیرنده یه جدول و همچنین برای فرستنده.
حالا اون فیبد های اختصاصی که هستند برای هر درخواست یه جدول دیگه.

ممنون میشم راهنمایی کنید.

آفلاین
user-avatar
علی بیات ( 419779 تجربه )
3 هفته پیش
تخصص : توسعه دهنده ارشد وب

لینک کوتاه اشتراک گذاری

0

یک سوال تقریبا مشابه در تاپیک دیگه‌ای مطرح شد
شاید جواب دقیق این سوال نباشه اما چکش کنید

https://roocket.ir/discuss/15099#subject-53222

آفلاین
user-avatar
moha li ( 101033 تجربه )
3 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

سلام وقت بخیر
اگر بتونید روابط مد نظرتون رو داخل یه flowchart رسم کنید و بفرستید دوستان بهتر می تونن کمکتون کنن.
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
3 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

آفلاین
user-avatar
moha li ( 101033 تجربه )
3 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

به نظر من برای ثبت درخواست یک جدول ایجاد کنید. که توی این جدول موارد زیر وجود داشته باشه (می تونید فیلدهای بیشتری رو اضافه کنید )

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

آفلاین
user-avatar
محمد ( 14896 تجربه )
3 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@mohaligateway
بسیار خوب، پس یه جداول 1) جدول درخواست 2)جدول فرستنده 3)گیرنده 4)مدارک و از طریق آیدی ها به هم لینک کنم.
یه سوال دیگه برای اینا کوئری به چه صورتی بنویسم؟ تمام اطلاعات گیرنده و فرستنده روی یه آرایه ذحیره کنم بعد موارد مورد نیاز برای هر کدومش کوئری بزنم؟

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

یه موردی الان به ذهنم رسید اینه که کاربر ها که نقش فرستنده و گیرنده دارن ثبت نام باید بکنن ؟
چه فیلدهایی برای ثبت نام وجود داره آیا فیلد های غیر مشترک هم توی ناحیه کاربری ذخیره میشن ؟
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@mohaligateway
کاربر فقط یک بار ثبت نام میکنه. فرم درخواست ها برای ثبت نام نیستش. یه کاربر بخواد یه درخواستی ثبت کنه حتما باید فرستنده و گیرنده پر کنه.
اطلاعات ثبتنام هم نام، ایمیل، رمز هستش

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

شما باید یک رابطه one to manay بین جدول users و requests ایجاد کنید.
و یک رابطه one to one بین جدول requests و froms ایجاد کنید.
و یک رابطه one to one بین جدول requests و toes داریم.
برای کوئری ها اگه خروجی مد نظرتون رو بگید بهتر میشه کمک کرد.
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@mohaligateway
این رابطه ها همون ایدی ریکورد های دیگه توی جداول دیگه هستند؟

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

می تویند از این لینک استفاده کنید.
https://laravel.com/docs/8.x/eloquent-relationships
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@Mohammad۷۹
من از لاراول استفاده نمیکنم. فریم ورکم Codeigniter هستش

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

ببخشید تا حالا از Codeigniter استفاده نکردم. شاید دوستان بتونن کمکتون کنن.
@hesammousavi
@ali.bayat

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@mohaligateway
برای دیتابیس الان میخوام این کارو بکنم بنظرتون درسته؟
جدول درخواست: اطلاعات کلی مثل شماره، تاریخ، نوع، چه کسی درست کرده و ...
جدول: جزئیات: اطلاعات گیرنده و فرستنده بعضی هاشون مثلا توی یه نوع درخواست نیاز نیست ولی میخوام توی دیتابیس نال باشه ولی توی ثبت کنترل کنیم که چه چیز بره و ...
جدول فایل: اگه کسی فایلی آپلود کرده بره اونجا.

الان کسی بخواد درخواست ثبت کنه بعد از پر کردن یه اطلاعات میره توی جدول اصلی میشنه بعد میره توی جدول جزئیات یدون رکورد برای فرستنده ثبت میشه و یکی دیگه برای گیرنده.

بنظرتون این کاری که الان کردم درست هستش؟ بنظرم زیاد نرمال شد😎

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

@mohaligateway
یا اصلا برای سه تا نوع درخواست، واسه هر کدومش یدونه جدول بسازم.که تعداد فیلد ها تقریبا 30 تا خواهد شد.
بنظرم این ساده و بهتر هستش؟

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

چند تا نکته:
1- برای from و to حتما یه یونیک بزارید برای اینکه آدرس ها یکی باشی تعداد سطر ها بالا نره.
2- جدول فایل رو میشه حذف کرد. اگه کاربر فایل میفرسته لینکش رو برای اون ذخیره کنید. اگه توی درخواست ها هستش مسیر رو توی درخواست ها بزارید.
3- برای جدول جزئیات درخواست می تونید از metas استفاده کنید که اگر جزئیات داشت در اون قسمت قرار بگیره و گرنه بی خودی حجم جدول را بالا نبره ( البته می تونید توی requests هم بزنید)
4- برای جدول درخواست اصلی هم یه from_id و to_id قرار بدید بعد جدول ها رو به هم ارتباط بدید.
5- اگر اطلاعات قرار هست ارسال بشه برای کاربر پس باید کاربر از قبل لاگین کرده باشه و یه id داشته باشه ؟ مثل اسنپ کاربر لاگین کرده و یه لوکیشن ثبت می کنه برای درخواست هاش.
6- یه ثبت درخواست چندین تا آدرس می تونه داشته باشه ؟
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

1- اوکی پس برای هر کدومش یه جدول میزنم و یونیک هارو به جدول اصلی اضافه میکنم.
2- جدول فایل جای دیگه هم استفاده میکنم.
3- metas ؟؟
4- پس برای گیرنده و فرستده واسه هر کدومش یه جدول بزنم.
5- لازمه ی ثبت درخواست لاگین هستش.
6- هر درخواست یه گیرنده داره و یه فرستنده.

@mohaligateway راستی ممنون از لطف شما که وقت میزارید و منو راهنمایی میکنید🙏❤️

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

1- درسته
2- درسته
3- به جدول های رابط متا می گن موارد غیر ضروری می تونید توی این جدول قرار بدید و به جدول اصلی وصل کنید.
4- درسته
5- درسته
6- درسته
@Mohammad79

آفلاین
user-avatar
محمد ( 14896 تجربه )
2 هفته پیش
تخصص : همیشه در حال یادگیری ...

لینک کوتاه اشتراک گذاری

0

بسیار عالی
فقط کوئری چه طوری بزنم؟
@mohaligateway

آفلاین
user-avatar
moha li ( 101033 تجربه )
2 هفته پیش
تخصص : توسعه دهنده لاراول و Vue

لینک کوتاه اشتراک گذاری

0

ببینید این دو تا لینک کارتون رو راه می اندازه
https://forum.codeigniter.com/thread-65777.html
https://forum.codeigniter.com/thread-74126.html
من خودتم تا حالا با codeigniter کار نکردم.
@Mohammad79

برای ارسال پاسخ لازم است، ابتدا وارد سایت شوید.