轉載:http://blog.csdn.net/u013215018/article/details/54981216數據庫
如今有兩個表一張是Roles表(角色表),一張是RoleUser表(用戶角色).net
如今我想把RoleUser表中的RoleID屬性設置爲外鍵,關聯Roles表中的RoleID屬性。blog
操做步驟:排序
第一步:索引
第二步:get
一共有七列。簡單介紹一下這幾列的意思:引用
「名」: 能夠不填,你一會保存成功系統會自動生成。im
「欄位」:就是你要把哪一個鍵設置爲外鍵。這裏選擇‘RoleID’總結
「參考數據庫」: 外鍵關聯的數據庫。數據
「引用表」: 關聯的表 這裏是Roles表
「外欄位名」:關聯的的字段,這裏是RoleID
「刪除時":就是刪除的時候選擇的動做。這裏個人選擇是setNull,意思就是當關聯的表刪除之後,RoleUser->RoleID字段會設置爲null。
「 更新時」:就是更新的時候選擇的動做。這裏個人選擇是CASCADE,意思就是當關聯的表更新之後,RoleUser->RoleID字段會設置爲級聯更新。
關係型數據庫中的一條記錄中有若干個屬性,若其中某一個屬性組(注意是組)能惟一標識一條記錄,該屬性組就能夠成爲一個主鍵。
好比:
學生表(學號,姓名,性別,班級)
其中每一個學生的學號是惟一的,學號就是一個主鍵;
課程表(課程編號,課程名,學分)
其中課程編號是惟一的,課程編號就是一個主鍵;
成績表(學號,課程號,成績)
成績表中單一一個屬性沒法惟一標識一條記錄,學號和課程號的組合才能夠惟一標識一條記錄,因此,學號和課程號的屬性組是一個主鍵。
成績表中的學號不是成績表的主鍵,但它和學生表中的學號相對應,而且學生表中的學號是學生表的主鍵,則稱成績表中的學號是學生表的外鍵;同理,成績表中的課程號是課程表的外鍵。
定義主鍵和外鍵主要是爲了維護關係數據庫的完整性,總結一下:
1、主鍵是能肯定一條記錄的惟一標識,好比,一條記錄包括身份正號,姓名,年齡。身份證號是惟一能肯定你這我的的,其餘均可能有重複,因此,身份證號是主鍵。
外鍵用於與另外一張表的關聯。是能肯定另外一張表記錄的字段,用於保持數據的一致性。好比,A表中的一個字段,是B表的主鍵,那他就能夠是A表的外鍵。
2、主鍵、外鍵和索引的區別
定義:
主鍵--惟一標識一條記錄,不能有重複的,不容許爲空
外鍵--表的外鍵是另外一表的主鍵, 外鍵能夠有重複的, 能夠是空值
索引--該字段沒有重複值,但能夠有一個空值
做用:
主鍵--用來保證數據完整性
外鍵--用來和其餘表創建聯繫用的
索引--是提升查詢排序的速度