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

首頁 > 開發 > 綜合 > 正文

數據庫正規化和設計技巧(1)

2024-07-21 02:30:47
字體:
來源:轉載
供稿:網友
在動態網站的設計中,數據庫設計的重要性不言而喻。如果設計不當,查詢起來就非常吃力,程序的性能也會受到影響。無論你使用的是MySQL或者Oracle數據庫,通過進行正規化的表格設計,可以令你的php代碼更具可讀性,更容易擴展,從而也會提升應用的性能。

  簡單說來,正規化就是在表格設計時,消除冗余性和不協調的從屬關系。在本文中,我將通過五個漸進的過程來告訴你在設計中應該了解的正規化技巧。從而建立一個可行而且 效率高的數據庫。本文也會詳細分析一下可以利用的關系類型。

  這里假定我們要建立一個用戶信息的表格,其中要存儲用戶的名字、公司、公司地址和一些個人的收藏夾或url。在開始時,你可能定義一個如下的表格結構:

  零狀態形式

  users

  name company company_address url1 url2

  Joe ABC 1 Work Lane abc.com xyz.com

  Jill XYZ 1 Job Street abc.com xyz.com

  由于沒有進行任何的正規化處理,我們將這種形式的表稱為零狀態形式的表。留意其中的url1和url2字段---如果我們在應用中需要第三個url呢?這樣你就要在表格中多加一列,很明顯,這不是一個好辦法。如果你要創建一個富有擴展性的系統,你就要考慮使用第一個正規化的形式,并且應用到該表格中。

  第一級正規化形式

  1.消除每個表格中重復的組

  2.為每套相關的數據建立一個獨立的表格

  3.使用一個主鍵來標識每套相關的數據

  以上的表格明顯違反了上面第一條的規定,那么第三條的主鍵又是什么意思呢?很簡單,它只是在每個記錄中加入一個唯一的、自動增加的整型值。通過這個值,就可以將兩個姓名一樣的記錄區分開來。通過應用第一級正規化形式,我們得到了以下的表格:

  users

  userId name company company_address url

  1 Joe ABC 1 Work Lane abc.com

  1 Joe ABC 1 Work Lane xyz.com

  2 Jill XYZ 1 Job Street abc.com

  2 Jill XYZ 1 Job Street xyz.com

  現在我們的表格可以說已經處在第一級正規化的形式了,它已經解決了url字段的限制問題,不過這樣的處理后又帶來了一個新的問題。每次在user表中插入一條記錄的時候,我們都必須重復所有的公司和用戶數據。這樣不僅令數據庫比以前大了,而且很容易出錯。因此還要經過第二級正規化處理。



發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 若羌县| 桑日县| 肇庆市| 商丘市| 滦南县| 苏州市| 斗六市| 普格县| 绥中县| 名山县| 静安区| 安顺市| 西乌| 道孚县| 庄河市| 灵台县| 宁陵县| 桃江县| 洛阳市| 石楼县| 射阳县| 信阳市| 花莲市| 诏安县| 迁西县| 金坛市| 保山市| 筠连县| 刚察县| 铜陵市| 易门县| 桃源县| 永福县| 集贤县| 崇明县| 鄂托克前旗| 汕尾市| 青铜峡市| 栾川县| 郑州市| 西藏|