資料庫設計

在許多網站中需要用到後台也就是一般所說的伺服器來保存網站開發者、公司所需要的資料,這個包括用戶的資訊、網站的內容、產品資訊、線上產生的內容等等,都必須倚靠資料庫。

越是大的資料庫,資料庫設計方式越顯現的重要,想像一下若是要把幾萬、幾十萬、幾百萬、甚至更多的資料放在一塊,要找的自己要的資料需要多少時間?
所以必須對資料庫的設計深思熟慮過

各種不同資料的處理方式可能會不一樣,但是還是有些共同的原則在:

  • 資訊不要重複儲存,會浪費空間,增加不一致的可能
  • 正確性跟完整性很重要,不正確的資料會造成各種錯誤
  • 資料表都需要賦予 ID 欄,可以用來辨識跟操作還有達成跟其他資料表的聯結

資料庫設計的流程大致如下:

  1. 思考並確定資料庫的用途
  2. 尋找必須含入的資訊
  3. 規劃成一個個不同主題的資料表
  4. 確立資料表的項目
  5. 指定主索引鍵,獨一無二的編號或 ID
  6. 設定資料表間的關聯
  7. 用假資料測試並調整設計

思考並確定資料庫的用途

明確地把需要用到資料庫的原因還有資料庫的用途寫下來。如果今天是個收藏音樂創作的網站,敘述可能就是:將每個音樂創作者的創作記錄保存,並呈現給其他喜歡音樂的人聆聽。

尋找必須含入的資訊

要有辦法記錄誰上傳的音樂、誰聽過了哪些音樂,包含ID、帳號、密碼、信箱、還有跟會員有關的資訊。要有創作的音樂記錄,音樂編號、創作時間、作者、長度等等資訊供之後利用。

規劃成一個個不同主題的資料表

ID、帳號、密碼、信箱、還有跟會員有關的資訊,會需要放在一個會員表。
作相關的細節,創作時間、作者、長度等等,會需要放在一個音樂表。

確立資料表的項目

這邊要詳細的條列
會員表:

  • id
  • account
  • password
  • email

這樣一個個列出來

指定主索引鍵,獨一無二的編號或ID

主鍵是個非常重要的角色,就像是產品編號、會員編號、曲目編號等等,有了這樣獨一無二的識別項目,才能對整個表進行排序、操作、檢索等等,選擇好的識別項目當主鍵非常重要,沒有好的項目就多存一個自動遞增 ID 當主鍵。特別注意這要是一個不能變更的值。

設定資料表間的關聯

為了減少資料的重複跟過於複雜的欄位,不能將所有東西放在同一張表。但有時候還是必須同時用到兩張表以上的資料,這時候就必須用 JOIN 的查詢,例如:

歌曲編號 歌名 類型 作者 ID
1 我難過 難過 5566
2 地球對不起 環保 1234
3 嘻哈熊 嘻哈 1234

每首歌曲參照到一個作者,但作者這邊只存了數字的ID,必須先去參照了作者的表才能找到 ID 代表的是哪個作者,設計這樣的關係讓資料能有規劃的分散在各個表才能讓容易管理。如果是多對多的關係,作者可以有很多歌、歌可以有很多作者的話就可以創第三個表來記錄,或是把其中一個表做延伸來記錄。

用假資料測試並調整設計

先嘗試了把資料填了進去後就可以看看個個表的運作是否有辦法像原本所想的一樣的順暢,如果不好的話就必須要做重新設計與調整。

發表迴響

在下方填入你的資料或按右方圖示以社群網站登入:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / 變更 )

Twitter picture

You are commenting using your Twitter account. Log Out / 變更 )

Facebook照片

You are commenting using your Facebook account. Log Out / 變更 )

Google+ photo

You are commenting using your Google+ account. Log Out / 變更 )

連結到 %s