關於MySQL表設計,測試人員可以關注哪些點

海布里Simple發表於2024-11-08

測試人員關注資料庫表設計是“測試左移”的一種手段,可以把有關資料庫的潛在bug消滅在系統測試之前,從而提高交付效率。

以MySQL為例,QA可從以下方面對資料庫表設計做測試的左移:

1、功能角度

表結構

  • 確保每張表都有主鍵,且主鍵值唯一且非空,以保證表中每行資料的唯一性和可識別性
  • 檢查外來鍵約束是否有效,即外來鍵值必須是對應主鍵表中存在的值,避免出現孤立資料或無效關聯
  • 表之間存在關聯的,驗證表與表之間的關聯關係是否正確建立(如主鍵和外來鍵的設定是否準確,關聯欄位的資料型別和長度是否一致)
  • 評估資料表結構對業務變化的適應性(是否能夠靈活地進行調整和擴充套件,以滿足不斷變化的業務需求)

表欄位

  • 欄位的資料型別是否符合業務要求(比如資料量大的欄位型別設計成int,使用unsignedint或bigint)
  • 欄位的長度設計是否合理(是否有合理的buffer,相容後續新業務)
  • 不同表,相同含義的欄位命名是否統一(多分參與開發時,歧義少,也就降低了bug出現的可能性)
  • 不同表,相同含義欄位的型別、長度是否一致(不一致時,可能會出現表A正常落庫,表B因不能正常落庫而發生bug)
  • 敏感字斷是否經過加密處理(如銀行卡號,身份正號,手機號等)
  • 約束條件是否符合業務要求(介面設計欄位可以空,但表設計欄位NOT NULL,提交的時候顯然會報錯)
  • 冗餘欄位是否貼合實際業務要求(很多時候,RD為了提高擴充套件性,設計很多無效的字斷,會拉低CURD效能)
  • 欄位有預設值的,檢查預設值是否符合業務要求
  • 日期字斷需要特別關注,是否符合業務上對日期格式的要求

2、效能角度

  • 對於查詢操作會操作的表,是否有設計索引(經常用於查詢條件、連線條件或排序的欄位,需建立索引)
  • 索引的建立是否合理,是否能有效提高查詢效能(設計索引的欄位應為查詢條件的過濾欄位)
  • 索引是否過度建立(合理的索引可以提高查詢效能,但過多的索引會拉低增刪改的效能)
  • 檢視是否合理建立(如果新增表參與聯表查詢,考慮是否可以使用檢視來提高查詢速度)

相關文章