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

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

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

2024-07-21 02:11:02
字體:
供稿:網(wǎng)友
在動(dòng)態(tài)網(wǎng)站的設(shè)計(jì)中,數(shù)據(jù)庫設(shè)計(jì)的重要性不言而喻。如果設(shè)計(jì)不當(dāng),查詢起來就非常吃力,程序的性能也會(huì)受到影響。無論你使用的是mysql或者oracle數(shù)據(jù)庫,通過進(jìn)行正規(guī)化的表格設(shè)計(jì),可以令你的php代碼更具可讀性,更容易擴(kuò)展,從而也會(huì)提升應(yīng)用的性能。

  簡(jiǎn)單說來,正規(guī)化就是在表格設(shè)計(jì)時(shí),消除冗余性和不協(xié)調(diào)的從屬關(guān)系。在本文中,我將通過五個(gè)漸進(jìn)的過程來告訴你在設(shè)計(jì)中應(yīng)該了解的正規(guī)化技巧。從而建立一個(gè)可行而且 效率高的數(shù)據(jù)庫。本文也會(huì)詳細(xì)分析一下可以利用的關(guān)系類型。

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

  零狀態(tài)形式

  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

  由于沒有進(jìn)行任何的正規(guī)化處理,我們將這種形式的表稱為零狀態(tài)形式的表。留意其中的url1和url2字段---如果我們?cè)趹?yīng)用中需要第三個(gè)url呢?這樣你就要在表格中多加一列,很明顯,這不是一個(gè)好辦法。如果你要?jiǎng)?chuàng)建一個(gè)富有擴(kuò)展性的系統(tǒng),你就要考慮使用第一個(gè)正規(guī)化的形式,并且應(yīng)用到該表格中。

  第一級(jí)正規(guī)化形式

  1.消除每個(gè)表格中重復(fù)的組

  2.為每套相關(guān)的數(shù)據(jù)建立一個(gè)獨(dú)立的表格

  3.使用一個(gè)主鍵來標(biāo)識(shí)每套相關(guān)的數(shù)據(jù)

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

  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

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

發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 商城县| 杨浦区| 阿鲁科尔沁旗| 南部县| 万全县| 阜南县| 太湖县| 高州市| 杂多县| 乐平市| 屯留县| 调兵山市| 长葛市| 永定县| 广饶县| 临湘市| 探索| 岳普湖县| 额尔古纳市| 新晃| 普陀区| 甘南县| 腾冲县| 车致| 锦州市| 乐陵市| 丽水市| 宿州市| 上犹县| 永定县| 乌鲁木齐县| 稷山县| 邯郸县| 泽普县| 宣汉县| 深州市| 天镇县| 顺义区| 阿合奇县| 武山县| 开阳县|