2009-04-30 54 views
1

在我的職業生涯中,我已經看到人們選擇處理州和國家數據的幾十種方式(如在紐約或美國)。我已經看到了枚舉,多維數組,來自XML文檔或數據庫的數據驅動類,以及老式的字符串。處理州和國家(或省):實施的最佳方式

所以,我想知道,人們認爲什麼「最好的方式」來處理這個非常常見的實現?我知道大部分答案將主要基於意見和偏好;但是,我很好奇聽到有關我正在開發的應用程序的最近討論的爭論,結果引發了一場小小的辯論。

回答

1

如果你認爲美國國家的數量不變,那麼你所擁有的是一組有限的,小的,固定的值,可以很容易地與一個數字相關聯。對於這種類型的數據結構,枚舉很有用。那麼我的選擇將是枚舉,因爲它們具有良好的編譯時驗證並且很好地輸入類似下面的內容。

var state = GetStateInfo(States.Nebraska); 

但是如果你考慮狀態的數量是一個變化值,那麼枚舉可能不是最好的選擇。框架設計指南(link)建議您不要將枚舉用於被認爲是開放(更改)的一組值。之所以這樣,是因爲如果價值確實發生了變化,您就有可能破壞已經發貨的代碼相反,我會用名稱的靜態類和字符串常量。

0

我認爲枚舉或XML是好的,如果你想要的只是一個簡單的狀態列表。如果您有其他依賴性數據,如說州稅率或郵政編碼數據,那麼我想我會將這些州存儲在數據庫中。

和國家一樣。您可能想要根據國家來控制語言,貨幣等。我認爲如果它在數據庫中就更容易處理了。

1

我會選擇一個枚舉geogrpahical區域的標準,然後在表中關聯鍵。在過去,我使用FIPS 5-2 place codes。它的聯邦標準和數字和縮寫是合理的。對於國際國家代碼,我們使用FIPS 10-4來編碼位置。有一些ISO標準如ISO 3166也可能有吸引力,但這更偏向於品味。