[實際開發指南] #2 資料庫設計流程指南 - antqtech/KM GitHub Wiki

資料庫設計流程指南

資料庫設計考量

1. 設計原則

  • 正規化:確認資料庫是否符合基本的正規化原則(如1NF、2NF、3NF),避免資料冗餘和異常。這可以減少未來資料更新時可能產生的問題。
  • 欄位命名一致性:確認欄位名稱的命名規則一致,便於日後維護。
  • 欄位的資料型別:需確認每個欄位的資料型別適合其用途。比方說,任何可能有中文字出現的欄位皆使用NVARCHAR避免亂碼出現。

2. 主鍵與索引

  • 設計主鍵:每個資料表需有唯一的主鍵(Primary Key),例如使用MemberID做為會員資料表的主鍵。
  • 索引的使用:對於經常查詢的欄位,可以考慮建立索引,以提高查詢效率,但需注意過多索引會影響寫入效能。
  • 不使用外鍵:建議自行搜尋理由。

3. 欄位長度與容量的合理性

  • 設計VARCHAR長度:對於每個VARCHAR欄位的長度設置應基於業務需求與未來可能的增長情況。例如,公司名稱可能長度設為100或200,而電話號碼則應更具體考慮當地電話號碼格式。
  • NVARCHAR長度:中文字的欄位要設計適合的字數,並考慮NVARCHAR的儲存空間會比VARCHAR更大。

4. 建立時間戳(Timestamp)欄位

  • 新增created_atupdated_at欄位:這些欄位可以自動記錄每筆資料的創建和更新時間,對於日後查詢或數據分析會很有幫助。但並不是必要的,可先與夥伴討論。

實際設計資料庫

1. 實際設計原則

  • 溝通:確保與夥伴保持良好的溝通,在設計過程中可以適時與夥伴討論、提問。

2. 確認Figma設計稿

  • 功能確認:確認此處要實作的功能,比如會員註冊,可作為命名依據。

  • 欄位確認:從Figma裡畫好的Prototype確認有哪些資料欄位。

    • 如:姓名、Email、區碼、聯絡電話、密碼等。

3. 依照設計稿設計資料表詞彙

  • 資料表確認:經由上一步驟確認後可以知道,我們需要的資料表。

    1. 會員資料表:儲存會員資料。

    2. 國家與地區資料表:儲存國家/地區以及該區域的區碼。

  • 實際在規格書(資料表詞彙)中設計:開始在文件中設計資料表。

    • 實際可參考上面的資料庫設計考量

    • 確保有意義的命名

    • 過程中可持續與夥伴溝通確認細節。

4. 討論

  • 討論:設計完成之後跟負責Review的人約個時間討論與修改。

5. 新增至資料庫

  • 新增資料表:連上VPN,打開SSMS並連線,新增資料表,設定好主鍵與型別之後儲存。