ورود

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



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

1-EmployeeID (کلید اصلی)
2-FirstName
3-LastName
4-Address
5-BaseSalary
6-MaxMonthlySalary
7-DaysWorkedInMonth

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

mmbguide
سه شنبه 28 آبان 1398, 10:22 صبح
سلام

در خصوص مورد دوم. جدول دوم باید یک کلید خارجی با EmployeeID برقرار کنه. در جدول دوم ممکنه EmployeeID چندین بار تکرار بشه چون در طول زمان ممکنه پرسنل شرایط حقوقی متفاوتی داشته باشه و شما باید اطلاعات جدید ثبت کنید. البته این روش بیشتر برای ثبت سوابق کارایی داره در غیر اینصورت ایجاد یک جدول کفایت میکنه. ولی ایجاد دو جدول و داشتن سوابق قبلی بسیار کاربردی هستش. جدول اول یک کلید اصلی خواهد داشت با نام EmployeeID و در جدول دوم به عنوان کلید خارجی تعریف میشه. درضمن به دلیل امکان تکرار EmployeeID در جدول دوم، این فیلد نمیتونه کلید اصلی باشه و رد صورت نیاز به داشتن کلید اصلی باید یک فیلد ایجاد کنید