2009-04-26 133 views

回答

11

兩者有什麼不對?如果值是用戶定義的或改變的,肯定enum將不適合。

如果值嚴格不變(如性別),則可以將它們設置爲enums以便於在應用程序中引用,也可以在DB中將其作爲單獨的表來強制實施外鍵和作爲參考。

0

如果列表足夠穩定以使用枚舉,那麼我會在代碼中使用枚舉加上數據庫中的表(使其成爲數據一致性的外鍵)。

6

這取決於。我列出了以下每種方法的一些優點和缺點。一般來說,如果應用程序需要使用值來作出決定,我強烈希望枚舉。正如Mehdrad所提到的,您可以使用這兩種方法,但需要額外的努力來保持列表同步。

的查找表:

  • 參照完整性可以被強制執行 通過外鍵
  • 易於添加或刪除現有的值
  • 表可以被擴展到添加附加字段(激活標誌,等等)
  • 如果使用業務對象需要額外的類
  • 易於使用的報告中的值和描述

枚舉:

  • 檢查約束可以強制執行的數據完整性
  • 如果代碼需要用於分支使用值
  • 最佳選擇(例如X == SalesType.Web與X ==「WEB」)
  • 需要的軟件版本更改值
  • 無法顯示在SQL查詢的說明(不區分)
  • 枚舉可能無法在UI顯示是合適的(有解決方法)
0

在我的項目中,我使用我的應用程序dbscript從數據庫生成C#常量,因此代碼始終匹配db值。

當然,如果代碼根據Type字段的值執行特定的操作,您只需要擁有C#枚舉。