国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

數(shù)據(jù)庫正規(guī)化和設計技巧(2)

2024-07-21 02:30:48
字體:
供稿:網(wǎng)友
第二級正規(guī)化形式

  1.為應用在多條記錄的字段建立獨立的表格

  2.通過一個foreign key來關聯(lián)這些表格的值


  我們將url的值放在一個獨立的表格中,這樣我們就可以在以后加入更多的數(shù)據(jù),而無需擔心產(chǎn)生重復的值。我們還通過主鍵值來關聯(lián)這些字段:

  users

  userId name company company_address

  1 Joe ABC 1 Work Lane

  2 Jill XYZ 1 Job Street

  urls

  urlId relUserId url

  1 1 abc.com

  2 1 xyz.com

  3 2 abc.com

  4 2 xyz.com

  如上所示,我們創(chuàng)建了獨立的表格,users表中的主鍵userid現(xiàn)在與url表中的foreign key relUserId關聯(lián)。現(xiàn)在的情況好象已經(jīng)得到了明顯的改善。不過,如果我們要為ABC公司加入一個員工記錄呢?或者更多,200個?這樣我們就必須重
復使用公司名和地址,這明顯不夠冗余。因此我們將應用第三級正規(guī)化方法:

  第三級正規(guī)化形式

  1.消除不依賴于該鍵的字段

  公司名及地址與User Id都是沒有關系的,因此它們應用擁有自己的公司Id:

  users

  userId name relCompId

  1 Joe 1

  2 Jill 2

  companies

  compId company company_address

  1 ABC 1 Work Lane

  2 XYZ 1 Job Street

  urls

  urlId relUserId url

  1 1 abc.com

  2 1 xyz.com

  3 2 abc.com

  4 2 xyz.com

  這樣我們就將companies表中的主鍵comId和users表中名字為relCompId的foreign key關聯(lián)起來,就算為ABC公司加入200個員工,在companies中也只有一條記錄。我們的users和urls表可以不斷地擴大,而無需擔心插入不必要的數(shù)據(jù)。大部
分的開發(fā)者都認為經(jīng)過三步的正規(guī)化就足夠了,這個數(shù)據(jù)庫的設計已經(jīng)可以很方便地處理整個企業(yè)的負擔,此看法在大多數(shù)的情況下是正確的。

  我們可以留意一下url的字段--你注意到數(shù)據(jù)的冗余了嗎?如果給用戶用戶輸入這些url數(shù)據(jù)的HTML頁面是一個文本框,可任意輸入的話,這并沒有問題,兩個用戶輸入同樣收藏夾的概率較少,不過,如果是通過一個下拉式的菜單,只讓用戶選擇兩個url輸入,或者更多一點。這種情況下,我們的數(shù)據(jù)庫還可以進行下一級別的優(yōu)化--第四步,對于大多數(shù)的開發(fā)者來說,這一步都是忽略的,因為它要依賴一個很特別的關系--一個多對多的關系,這在我們的應用中是還沒有遇到過的


發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 体育| 宝丰县| 南乐县| 加查县| 常德市| 郑州市| 永丰县| 长沙市| 布拖县| 富川| 昌江| 浠水县| 辽宁省| 阿克苏市| 岳普湖县| 济宁市| 谢通门县| 九龙坡区| 腾冲县| 额尔古纳市| 邢台县| 灵川县| 三原县| 朝阳区| 凤城市| 南溪县| 阿克陶县| 长白| 木里| 获嘉县| 铜山县| 西丰县| 佛坪县| 宜昌市| 化德县| 海门市| 石景山区| 灵宝市| 福建省| 谢通门县| 太和县|