آموزش MySQL – بخش پنجم – جداول تو در تو با Foreign Key

همانطور که در درس های قبل گفته شد ساختن جداول بهینه امری بسیار مهم در طراحی دیتابیس می باشد. جداول تو در تو در کاهش حجم دیتابیس بسیار کارا هستند. به همین علت در این بحث روش ساختن Foreign Key در MySQL را آموزش خواهیم داد.

 

 

تعریف Nested Tables

ما در مثال درس دوم دو جدول را برای ذخیره اطلاعات مربوط به دوستانمان بصورت زیر  ساختیم.

 

ردیف نام نام خانوادگی سن تاریخ تولد کد مشخصات
۱ علی امیری ۳۵ ۱۳۶۱/۷/۳ ۱
۲ محمد غلامی ۳۲ ۱۳۶۴/۲/۱۰ ۱
۳ وحید رسولی ۳۱ ۱۳۶۵/۱۱/۸ ۱
۴ علی قاسمی ۳۴ ۱۳۶۲/۴/۶ ۱

 

کد مشخصات جنسیت رشته ی تحصیلی مدرک
۱ مرد نرم افزار لیسانس

 

این دو جدول اصطلاحا دو جدول تو در تو یا Nested Table هستند. اگر قرار بود که ما همه ی این اطلاعات را در جدول اول ذخیره کنیم می بایست به ازای هر جها نفر  سه فیلد جنسیت، رشته تحصیلی و مدرک را از نوع TEXT تاضافه میکردیم و سه دیتای مرد،نرم افزار و لیسانس را بصورت تکراری به ازای هر ردیف می نوشتیم.

این به معنای ۱۲ دیتای TEXT به ازای ۴ نفر و در حجم وسیع تر یعنی مثلابرای ۱۰۰۰ نفر یعنی ۴۰۰۰ دیتای TEXT. این نشان دهنده ی این است که ما باید در طراحی فیلد هایی که اطلاعات تکراری در سطر های مختلف دیتابیس دارند ، جدولی دیگر را به عنوان زیر مجموعه بوجود آوریم و دیتابیس خود را به لحاظ فضای اشغالی بهینه نماییم.

همانطور که میبینید جهت ارتباط دو جدول ما از یک کد مشترک به نام کد مشخصات یا Personal ID استفاده کرده ایم که به این کد ارتباطی Foreign Key میگویند.

 

روش ساختن Foreign Key با Workbench

حال Workbench خود را باز کنید. ابتدا به جدول Friends که در درس های پیش ساختیم رفته و با انتخاب گزینه ی مشخص شده در شکل آن را Edit نمایید.

آموزش MySQL - بخش پنجم - جداول تو در تو - Foreign Key در MySQL

 

مطابق شکل زیر فیلد ProfileID را اضافه کنید.

آموزش MySQL - بخش پنجم - جداول تو در تو - Foreign Key در MySQL

 

بر روی Schema ی خود کلیک راست کرده و با انتخاب گزینه ی Create Table یک جدول جدید به اسم Profile با فیلد های دلخواه اضافه نمایید. دقت کنید که فیلد ProfileID مطابق شکل حتما در آن وجود داشته باشد.

آموزش MySQL - بخش پنجم - جداول تو در تو - Foreign Key در MySQL

 

 

حال بیایید دو جدول را به هم وصل کنیم.

ابتدا می بایست در جدول Friends یه بخش Foreign Keys بروید. در بخش سمت چپ این صفحه اسم Foreign key را وارد نموده که ProfileID می باشد و جدول مقصد را ‘myfriends’.’profile’ وارد نمایید. در بخش سمت راست فیلد ProfileID را تیک بزنید.

آموزش MySQL - بخش پنجم - جداول تو در تو - Foreign Key در MySQL

 

پس از زدن کلید Apply در پایین صفحه کلید، خارجی شما ایجاد شده و دو جدول به هم مرتبط خواهند شذ.

به این نکته توجه کنید که میتوانید در بخش Foreign key option با انتخاب گزینه های On Update و On Delete زمان بروز رسانی و پاک کردن یک profile در جدول friends تغییراتی را ایجاد کنید.

 

 

 

 


آموزش MySQL

آموزش MySQL – بخش اول – نصب و راه اندازی

آموزش MySQL – بخش دوم – Schema و Table

آموزش MySQL – بخش سوم – MySQL Workbench

آموزش MySQL – بخش چهارم – Flag ها در MySQL

آموزش MySQL – بخش پنجم – جداول تو در تو با Foreign Key

 

 

 

هرگونه کپی برداری از مطالب و عکس ها با ذکر منبع و قرار دادن لینک این سایت بلامانع است.