<form id="hz9zz"></form>
  • <form id="hz9zz"></form>

      <nobr id="hz9zz"></nobr>

      <form id="hz9zz"></form>

    1. 明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

      數據庫設計技巧(一)

      [摘要]在動態網站的設計中,數據庫設計的重要性不言而喻。如果設計不當,查詢起來就非常吃力,程序的性能也會受到影響。無論你使用的是mySQL或者Oracle數據庫,通過進行正規化的表格設計,可以令你的PHP代...
      在動態網站的設計中,數據庫設計的重要性不言而喻。如果設計不當,查詢起來就非常吃力,程序的性能也會受到影響。無
      論你使用的是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表中插入一條記錄的時候,我們都必須重復所有的公司和用戶數據。這樣不僅令數據庫比以
      前大了,而且很容易出錯。因此還要經過第二級正規化處理。



      日韩精品一区二区三区高清