首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 數據庫知識 >  >> SQL Server 資料庫 >> 關於SqlServer

SQL Server 資料庫設計實戰經驗:資料表與欄位命名、正規化與效能平衡

     編輯:關於SqlServer

預留變更追蹤欄位

設計時考量未來可能變更的欄位(如西方姓氏隨婚姻變更),建議獨立建表儲存並附加生效/失效日期以追蹤歷程。

採用有意義的欄位名稱

避免使用螢幕控制項縮寫(如 cbo1、txt2_b)或過長名稱(Customer_Shipping_Address_Street_Line_1)。除非團隊有共識縮寫標準,否則以清晰可讀為原則。

善用前綴區分同名欄位

多表共存相同語意欄位(如 FirstName)時,加上表前綴(如 CusLastName)利於識別。

時效性資料必加「最後更新時間」

時間戳記對追查資料問題、依日期重處理、清除舊資料極有幫助。

標準化與資料驅動設計

  • 外部資料源連接資訊存入支援表,而非硬編碼
  • 工作流程資料(發信、列印、狀態變更)資料化,策略變更無需改碼
  • 資料驅動可將維護責任移交用戶自行管理流程

正規化不可過度:3NF 與效能的取捨

3NF(第三正規化)通常在效能、擴充性、資料完整性間達最佳平衡:每值僅表達一次、每列具唯一鍵、不存儲依賴其他鍵的非鍵資訊。但更高正規化未必更好,甚至引入過度複雜性。

為效率有時需反正規化:曾將查詢時間從 40 秒降至 2 秒。但反正規化非設計常態,視為派生物件,出問題可重建。

其他實用技巧

  • Visual FoxPro 使用友善欄位名生成報表,非程式設計師也易閱讀
  • 加入「非作用中」旗標欄位,便於查詢過濾並防誤刪
  • 採用角色實體定義分類屬性(如 PERSON + PERSON_TYPE),職稱變更只需改關聯鍵值並記錄時間,完整保留歷程
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved