99999久久久久久亚洲,欧美人与禽猛交狂配,高清日韩av在线影院,一个人在线高清免费观看,啦啦啦在线视频免费观看www

熱線電話:13121318867

登錄
2018-11-09 閱讀量: 1194
怎樣理解外鍵?

外鍵是在關(guān)系數(shù)據(jù)庫中創(chuàng)建關(guān)系的一個組成部分。

因此,我們已經(jīng)確定主鍵為表提供唯一標識符。但主鍵不是唯一的“鍵”類型。我們的數(shù)據(jù)庫也可以包含外鍵。

什么是外鍵?

一個外鍵是唯一標識另一個表的一排一個表中的列(或列的集合)。這定義了兩個表之間的關(guān)系。

外鍵允許您跨表交叉引用相關(guān)數(shù)據(jù)。當列包含在另一個表中表示的數(shù)據(jù)時,這會派上用場。

例子

這是我們的圖表 水果店 數(shù)據(jù)庫顯示了之間的關(guān)系 水果 桌子和 單位 表。

MySQL外鍵架構(gòu)圖

鏈接兩個表的黑線表示外鍵。該單元ID 在球場上 水果 table是一個外鍵 單元ID在球場上 單位表。因此,我們插入的值Fruit.UnitId 必須對應于中的值 Units.UnitId。這使得Fruit.UnitId 引用該記錄的其他列中的數(shù)據(jù)(即具有相應記錄的記錄) 單元ID)。

數(shù)據(jù)

所以如果我們的 水果 table包含這樣的記錄:

你可以看到 Fruit.UnitId字段包含一個3?,F(xiàn)在看看單位表中包含的記錄3中單元ID領(lǐng)域。您可以看到此記錄代表公斤,蘋果以千克為單位。

以這種方式設(shè)置數(shù)據(jù)庫的好處是,我們不需要為每個使用該單元的記錄重復“公斤”。減少重復是關(guān)系數(shù)據(jù)庫管理系統(tǒng)的關(guān)鍵優(yōu)勢。

看到了很多記錄 水果table將共享相同的單元名稱(例如,“Kilograms”,“Container”,“Bunch”等),在將重復項添加到數(shù)據(jù)庫之前,我們應該仔細考慮。在不使用外鍵關(guān)系的情況下,我們可以直接將單元名稱寫入水果table(也許可以調(diào)用“Unit”,“UnitType”或“UnitName”列)。然后我們最終會得到許多記錄,這些記錄共享單元名稱列的相同值。對于許多記錄,我們會看到“Kilogram”一遍又一遍地重復。我們還會看到“束”重復,以及任何其他流行的單位類型。

雖然執(zhí)行此操作不一定“錯誤”,但通常更有效的是將每個單元名稱的一條記錄存儲在單獨的表中,然后通過 單元ID柱。這樣做比為每個創(chuàng)建的記錄一遍又一遍地重復這些單位名稱更有效水果表。如果我們決定更新單位名稱(例如將“Kilograms”更改為“Kilos”),它也會更容易。如果我們更新單位名稱,它不會影響水果 因為桌子 單元ID將保持不變。此外,它還有助于防止數(shù)據(jù)庫中出現(xiàn)不一致的數(shù)據(jù)。

0.0000
0
關(guān)注作者
收藏
評論(0)

發(fā)表評論

暫無數(shù)據(jù)
推薦帖子