將一張表的主鍵作為外鍵關聯到另一張表中
1、外鍵的介紹
設置外鍵的作用很明顯,就是講兩個表的數據產生關聯,就比如個人信息表和部門表之間,部門表的部門id就可以作為一個外鍵存放於個人信息表中,除此之外設定外鍵在父子表中的維護關系,可以達到一個類似於級聯的操作,就是當父級表(主鍵作為外鍵的表)數據變化時,子表(拿着別的表的主鍵作為自己的外鍵的表)就會有相應的數據變化;
2、使用Navicat創建外鍵
其實只要找到外鍵設定的地方就可以了,很簡單~,如下圖:
只要按照那一列的名字選擇好對應的外鍵表、外鍵列等信息即可,其中有一個比較重要的就是外鍵維護關系的選擇,就是最后兩欄~
3、外鍵的維護關系設定及其選擇
外鍵的維護關系不論是外鍵的更新還是刪除都分為四級,下面是對四級的介紹;
- CASCADE:父表delete、update的時候,子表會delete、update掉關聯記錄;
- SET NULL:父表delete、update的時候,子表會將關聯記錄的外鍵字段所在列設為null,所以注意在設計子表時外鍵不能設為not null;
- RESTRICT:如果想要刪除父表的記錄時,而在子表中有關聯該父表的記錄,則不允許刪除父表中的記錄;
- NO ACTION:同 RESTRICT,也是首先先檢查外鍵;
關於這四種維護關系的選擇需要根據情況而定,比如:
- 訂單表和人員表,當用戶注戶后,該用戶的訂單信息需要被清空(至少在當前正在使用的數據庫中需要被移出),那么訂單表中的外鍵-人員id,他的維護關系就需要定為"CASCADE"級別的;
其他的情況就不一一介紹了;
《END》