亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 數據庫 > SQL Server > 正文

據庫的主鍵與外鍵--轉載

2019-11-03 08:34:34
字體:
來源:轉載
供稿:網友
主鍵和外鍵是把多個表組織為一個有效的關系數據庫的粘合劑。主鍵和外鍵的設計對物理數據庫的性能和可用性都有著決定性的影響。

必須將數據庫模式從理論上的邏輯設計轉換為實際的物理設計。而主鍵和外鍵的結構是這個設計過程的癥結所在。一旦將所設計的數據庫用于了生產環境,就很難對這些鍵進行修改,所以在開發階段就設計好主鍵和外鍵就是非常必要和值得的。

主鍵:

關系數據庫依賴于主鍵---它是數據庫物理模式的基石。主鍵在物理層面上只有兩個用途:

      1. 惟一地標識一行。

      2. 作為一個可以被外鍵有效引用的對象。

基于以上這兩個用途,下面給出了我在設計物理層面的主鍵時所遵循的一些原則:

      1. 主鍵應當是對用戶沒有意義的。如果用戶看到了一個表示多對多關系的連接表中的數據,并抱怨它沒有什么用處,那就證明它的主鍵設計地很好。

      2. 主鍵應該是單列的,以便提高連接和篩選操作的效率。

     注:使用復合鍵的人通常有兩個理由為自己開脫,而這兩個理由都是錯誤的。其一是主鍵應當具有實際意義,然而,讓主鍵具有意義只不過是給人為地破壞數據庫提供了方便。其二是利用這種方法可以在描述多對多關系的連接表中使用兩個外部鍵來作為主鍵,我也反對這種做法,理由是:復合主鍵常常導致不良的外鍵,即當連接表成為另一個從表的主表,而依據上面的第二種方法成為這個表主鍵的一部分,然,這個表又有可能再成為其它從表的主表,其主鍵又有可能成了其它從表主鍵的一部分,如此傳遞下去,越靠后的從表,其主鍵將會包含越多的列了。

      3. 永遠也不要更新主鍵。實際上,因為主鍵除了惟一地標識一行之外,再沒有其他的用途了,所以也就沒有理由去對它更新。如果主鍵需要更新,則說明主鍵應對用戶無意義的原則被違反了。

     注:這項原則對于那些經常需要在數據轉換或多數據庫合并時進行數據整理的數據并不適用。

      4. 主鍵不應包含動態變化的數據,如時間戳、創建時間列、修改時間列等。

      5. 主鍵應當有計算機自動生成。如果由人來對主鍵的創建進行干預,就會使它帶有除了惟一標識一行以外的意義。一旦越過這個界限,就可能產生認為修改主鍵的動機,這樣,這種系統用來鏈接記錄行、管理記錄行的關鍵手段就會落入不了解數據庫設計的人的手中。


外鍵是數據庫一級的一個完整性約束,就是數據庫基礎理論書中所說的“參照完整性”的數據庫實現方式。

外鍵屬性當然是可以去掉的,如果你不想再用這種約束,對編程當然不會有什么影響,但相應的錄入數據的時候就不對錄入的數據進行“參照完整性”檢查了。   

例如有兩個表

A(a,b) :a為主鍵,b為外鍵(來自于B.b)

B(b,c,d) :b為主鍵    

如果我把字段b的外鍵屬性去掉,對編程沒什么影響。

如上面,A中的b要么為空,要么是在B的b中存在的值,有外鍵的時候,數據庫會自動幫你檢查A的b是否在B的b中存在。

1、外建表達的是參照完整性:這是數據固有的,與程序無關。因此,應該交給DBMS來做。

2、使用外建,簡單直觀,可以直接在數據模型中體現,無論是設計、維護等回有很大的好處,特別是對于分析現有的數據庫的好處時非常明顯的--前不久我分析了一個企業現有的數據庫,里面的參照完整性約束有的是外鍵描述,有的是用觸發器實現,感覺很明顯。當然,文檔里可能有,但是也可能不全,但是外鍵就非常明顯和直觀。

3、既然我們可以用觸發器或程序完成的這個工作(指參照完整性約束),DBMS已經提供了手段,為什么我們要自己去做?而且我們做的應該說沒有RDBMS做得好。實際上,早期的RDBMS并沒有外鍵,現在都有了,我認為數據庫廠商增加這個功能是有道理的。從這個角度來說,外鍵更方便。

4、關于方便,根據我帶項目的情況來看,程序員確實有反映,主要是在調試時輸入數據麻煩:如果數據可以違反參照完整性,那么就是說參照完整性本身就不對名譽業務沖突,此時也不應該用觸發期貨程序實現;否則,說明數據是錯誤的,根本就不應該進入數據庫!而且,這也應該是測試系統的一個內容:阻止非法數據。實際上,前臺程序應該對這種提交失敗做出處理。數據是企業的而非程序的,儲程序要盡量與數據分離,反之亦然。

最后說一下,建鍵幾個原則:

1、 為關聯字段創建外鍵。

2、 所有的鍵都必須唯一。

3、避免使用復合鍵。

4、外鍵總是關聯唯一的鍵字段。



本文來自CSDN博客,轉載請標明出處:http://blog.csdn.net/c04s31602/archive/2009/12/30/5107568.aspx
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
亚洲精品日韩丝袜精品| 精品国产一区二区三区久久狼5月| 亚洲欧美一区二区三区在线| 亚洲欧美制服另类日韩| 国产精品手机播放| 在线观看日韩www视频免费| 国产精品观看在线亚洲人成网| 亚洲欧美日韩天堂| 亚洲一区二区三区视频播放| 国产精品一区二区久久国产| 精品久久久国产精品999| 国产午夜精品视频| 高清欧美一区二区三区| 国产欧美日韩精品丝袜高跟鞋| 亚洲国产欧美一区二区三区同亚洲| 亚洲xxxx视频| 亚洲国产精品女人久久久| 精品视频在线播放色网色视频| 国产精品久久久久秋霞鲁丝| 国产婷婷97碰碰久久人人蜜臀| 欧美激情视频在线免费观看 欧美视频免费一| 久久精品国产清自在天天线| 精品少妇一区二区30p| 欧美黄色片视频| 欧美精品福利视频| 亚洲一区二区久久久久久久| 午夜精品视频在线| 日本道色综合久久影院| 亚洲欧美精品一区二区| 色悠悠久久88| 欧美激情成人在线视频| 欧美亚洲成人精品| 91亚洲精品一区| 亚洲国产精品人久久电影| 欧美激情一二区| 国产精品欧美亚洲777777| 国产不卡视频在线| 欧美色videos| 国产精品v日韩精品| 亚洲成人精品视频在线观看| 亚洲第一福利在线观看| 日韩亚洲综合在线| 国产精品久久久久久久久久久久久久| 日韩hd视频在线观看| 国产精品自产拍在线观看中文| 亚洲香蕉av在线一区二区三区| 欧美中文字幕视频| 欧美电影在线观看网站| 日韩中文字在线| 久久91精品国产91久久久| 亚洲v日韩v综合v精品v| 日韩av网址在线观看| 91免费人成网站在线观看18| 成人a在线观看| 日韩一区二区福利| 日韩av成人在线观看| 精品亚洲aⅴ在线观看| 国产视频精品免费播放| 欧美成人性色生活仑片| 日韩一区二区三区在线播放| 精品久久香蕉国产线看观看亚洲| www高清在线视频日韩欧美| 色悠悠久久88| 国产精品高清在线| 日韩精品免费视频| 精品久久久久久久久久久| 91免费国产视频| 热99精品只有里视频精品| 91香蕉嫩草神马影院在线观看| 国产成人极品视频| 国内外成人免费激情在线视频网站| 日韩精品免费看| 亚洲男人天堂2024| 欧美大片在线看| 国产精品久久久久久中文字| 国产精品96久久久久久| 91视频8mav| 日韩电影中文字幕av| 91精品国产色综合久久不卡98口| 亚洲福利小视频| 国产亚洲激情视频在线| 国产亚洲精品久久久久久| 国产精品男女猛烈高潮激情| 蜜臀久久99精品久久久无需会员| 亚洲第五色综合网| 亚洲第一偷拍网| 亚洲自拍另类欧美丝袜| 日韩欧美在线视频免费观看| 欧美性xxxx极品hd满灌| 欧洲成人午夜免费大片| 亚洲视频欧洲视频| 亚洲福利视频二区| 日韩理论片久久| 国产精品偷伦一区二区| 午夜精品久久久久久久久久久久久| 亚洲天堂视频在线观看| 国产精品男女猛烈高潮激情| 国产91精品黑色丝袜高跟鞋| 色琪琪综合男人的天堂aⅴ视频| 亚洲va国产va天堂va久久| 夜夜嗨av一区二区三区免费区| 亚洲wwwav| zzijzzij亚洲日本成熟少妇| 国产主播精品在线| 在线一区二区日韩| 奇米一区二区三区四区久久| 欧美精品在线视频观看| 亚洲永久在线观看| 97精品一区二区视频在线观看| 自拍视频国产精品| xvideos亚洲人网站| 九九热这里只有精品6| 69久久夜色精品国产69| 久久婷婷国产麻豆91天堂| 亚洲sss综合天堂久久| 中文字幕久久久av一区| 久久久精品日本| 久久91精品国产| 亚洲精品不卡在线| 亚洲欧洲午夜一线一品| 日韩有码视频在线| 久久久久久亚洲精品不卡| 国产精品入口福利| 国模私拍视频一区| www.久久久久| 亚洲综合最新在线| xxxxx成人.com| 国产日韩综合一区二区性色av| 久久精品免费电影| 国产精品v片在线观看不卡| 欧美午夜精品伦理| 欧美专区中文字幕| 日韩中文字幕视频| 日产精品久久久一区二区福利| 国产日韩精品视频| 日韩av123| 日韩中文视频免费在线观看| 久久久999成人| 在线观看欧美成人| 亚洲第一级黄色片| 亚洲男人天天操| 在线观看中文字幕亚洲| 亚洲肉体裸体xxxx137| 亚洲第一精品夜夜躁人人爽| 久久视频国产精品免费视频在线| 国产视频久久久| 日韩欧美一区二区三区久久| 精品成人在线视频| 成人免费淫片aa视频免费| 色综合天天综合网国产成人网| 亚洲男人天天操| 国产精品在线看| 97人洗澡人人免费公开视频碰碰碰| 国产精品女人网站| 精品久久国产精品| 久久天天躁日日躁| 国产亚洲人成a一在线v站| 欧美午夜精品久久久久久久| 色偷偷噜噜噜亚洲男人的天堂| 久久夜色精品国产欧美乱| 久久艹在线视频| 亚洲一区二区国产| 九九热最新视频//这里只有精品| 日产精品久久久一区二区福利|