با سلام
من یک جدول دارم که تصمیم گرفتم با توجه به موضوع فیلدها , این جدول رو به 2 جدول کوچکتر تقسیم کنم. به عنوان مثال فرض کنید جدولی داریم به نام Employee که دارای 7 فیلده:
1-EmployeeID (کلید اصلی)
2-FirstName
3-LastName
4-Address
5-BaseSalary
6-MaxMonthlySalary
7-DaysWorkedInMonth
سوال اول من اینه که اصولا اینکه یک جدول با تعداد فیلد زیاد به جدولهایی با تعداد فیلد کمتر تقسیم بشه در راندمان نهایی تاثیر (چه مثبت چه منفی) میزاره؟
سوال دوم و مهم : در مثال بالا اگر بخوام فیلدهای 1 تا 4 را در یک جدول و فیلدهای باقی مانده (5 تا 7) را در یک جدول دیگه قرار بدم باید فیلد EmployeeID را در هر دو جدول قرار بدم. آیا در جدول دوم هم فیلد EmployeeID باید کلید اصلی تعیین بشه؟ در هر صورت ارتباط بین این دو جدول به چه شکلی باید باشه؟
سلام
در مورد سوال اول، به نظر من این کار اشتباهی هست! چرا که در مثال شما تعداد فیلد های شما زیاد نیست! اگر بخواهید جدول دوم رو بسازید مجبورید جداول رو به هم ایندکس کنید و با توجه به این که هرچقدر تعداد رکورد هاتون زیاد بشه سرعتتون هم بیشتر میاد پایین چون ایندکس کردن در همچین موردی یعنی تحمیل یک جستجوی اضافی به mysql
درمورد سوال دومتون باید بگم شما باید یک کلید معرف که می تونه EmployeeID باشه بسازید و جدول اصلی رو روی این کلید ایندکس کنید تا جدول ها به هم join بشوند
درکل ایندکس کردن جز در مواقع اضطراری توصیه نمیشه! مثلا زمانی شما میخواهید یک فروشگاه بسازید چون هر محصول خواصیت زیادی میتونه داشته باشهباید یک جدول برای خواص محصولات بسازید و اون رو به محصول اصلی index کنید
هیچ کاربری تا کنون از این پست تشکر نکرده است
با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)