[實際開發指南] #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_at
和updated_at
欄位:這些欄位可以自動記錄每筆資料的創建和更新時間,對於日後查詢或數據分析會很有幫助。但並不是必要的,可先與夥伴討論。
實際設計資料庫
1. 實際設計原則
- 溝通:確保與夥伴保持良好的溝通,在設計過程中可以適時與夥伴討論、提問。
2. 確認Figma設計稿
-
功能確認:確認此處要實作的功能,比如會員註冊,可作為命名依據。
-
欄位確認:從Figma裡畫好的Prototype確認有哪些資料欄位。
- 如:姓名、Email、區碼、聯絡電話、密碼等。
3. 依照設計稿設計資料表詞彙
-
資料表確認:經由上一步驟確認後可以知道,我們需要的資料表。
-
會員資料表:儲存會員資料。
-
國家與地區資料表:儲存國家/地區以及該區域的區碼。
-
-
實際在規格書(資料表詞彙)中設計:開始在文件中設計資料表。
-
實際可參考上面的資料庫設計考量。
-
確保有意義的命名。
-
過程中可持續與夥伴溝通確認細節。
-
4. 討論
- 討論:設計完成之後跟負責Review的人約個時間討論與修改。
5. 新增至資料庫
- 新增資料表:連上VPN,打開SSMS並連線,新增資料表,設定好主鍵與型別之後儲存。