مرجع تخصصی برنامه نویسان

انجمن تخصصی برنامه نویسان فارسی زبان

کاربر سایت

pooya1072

عضویت از 1398/08/11

تقسیم کردن یک جدول به 2 قسمت و ایجاد ارتباط بین آنها

  • چهارشنبه 15 آبان 1398
  • 17:36
تشکر میکنم

با سلام

من یک جدول دارم که تصمیم گرفتم با توجه به موضوع فیلدها , این جدول رو به 2 جدول کوچکتر تقسیم کنم. به عنوان مثال فرض کنید جدولی داریم به نام  Employee که دارای 7 فیلده:

1-EmployeeID (کلید اصلی)

2-FirstName

3-LastName

4-Address

5-BaseSalary

6-MaxMonthlySalary

7-DaysWorkedInMonth

سوال اول من اینه که اصولا اینکه یک جدول با تعداد فیلد زیاد به جدولهایی با تعداد فیلد کمتر تقسیم بشه در راندمان نهایی تاثیر (چه مثبت چه منفی) میزاره؟

سوال دوم و مهم : در مثال بالا اگر بخوام فیلدهای 1 تا 4 را در یک جدول و فیلدهای باقی مانده (5 تا 7) را در یک جدول دیگه قرار بدم باید فیلد EmployeeID را در هر دو جدول قرار بدم. آیا در جدول دوم هم فیلد EmployeeID باید کلید اصلی تعیین بشه؟ در هر صورت ارتباط بین این دو جدول به چه شکلی باید باشه؟

پاسخ های این پرسش

تعداد پاسخ ها : 1 پاسخ
کاربر سایت

abbas.aha@gmail.com

عضویت از 1399/03/14

  • چهارشنبه 14 خرداد 1399
  • 18:11

سلام

در مورد سوال اول، به نظر من این کار اشتباهی هست! چرا که در مثال شما تعداد فیلد های شما زیاد نیست! اگر بخواهید جدول دوم رو بسازید مجبورید جداول رو به هم ایندکس کنید و با توجه به این که هرچقدر تعداد رکورد هاتون زیاد بشه سرعتتون هم بیشتر میاد پایین چون ایندکس کردن در همچین موردی یعنی تحمیل یک جستجوی اضافی به mysql 

درمورد سوال دومتون باید بگم شما باید یک کلید معرف که می تونه EmployeeID  باشه بسازید و جدول اصلی رو روی این کلید ایندکس کنید تا جدول ها به هم join بشوند

درکل ایندکس کردن جز در مواقع اضطراری توصیه نمیشه! مثلا زمانی شما میخواهید یک فروشگاه بسازید چون هر محصول خواصیت زیادی میتونه داشته باشهباید یک جدول برای خواص محصولات بسازید و اون رو به محصول اصلی index کنید

کاربرانی که از این پست تشکر کرده اند

هیچ کاربری تا کنون از این پست تشکر نکرده است

اگر نیاز به یک مشاور در زمینه طراحی سایت ، برنامه نویسی و بازاریابی الکترونیکی دارید

با ما تماس بگیرید تا در این مسیر همراهتان باشیم :)