代码之家  ›  专栏  ›  技术社区  ›  jellomonkey

处理州和国家(或省):实施的最佳方法

  •  1
  • jellomonkey  · 技术社区  · 16 年前

    在我的职业生涯中,我从字面上看到了许多人们选择处理州和国家数据的方法(如在纽约或美国)。我见过枚举、多维数组、XML文档或数据库中的数据驱动类,以及老式的字符串。

    所以,我想知道,人们认为处理这种非常常见的实现的“最佳方法”是什么?我知道大多数答案主要是基于观点和偏好;但是,我很好奇听到一些争论,因为最近我正在研究的一个应用程序的讨论导致了一个小的争论。

    3 回复  |  直到 16 年前
        1
  •  1
  •   JaredPar    16 年前

    如果您认为美国的州数是不变的,那么您所拥有的是一组有限的、小的、固定的值,这些值很容易与一个数字相关联。对于这种类型的数据结构,枚举非常有效。然后我的选择是一个枚举,因为它们有很好的编译时验证,并且键入类似下面这样的代码可以很好地阅读。

    var state = GetStateInfo(States.Nebraska);
    

    但是,如果您认为状态数是一个不断变化的值,那么枚举可能不是最佳选择。框架设计指南( link )reccomend对于被视为打开(更改)的一组值,不使用枚举。原因是,如果该值确实发生了变化,那么就有可能破坏已经发出的代码。相反,我将使用静态类和字符串常量作为名称。

        2
  •  1
  •   MikeJ    16 年前

    我会选择一个枚举地理区域的标准,然后在表中关联键。过去我用过 FIPS 5-2 place codes . 这是一个联邦标准,数字和缩写词是众所周知的。我们使用的国际国家代码 FIPS 10-4 用于编码位置。有些ISO标准(如ISO 3166)可能也很吸引人,但这更符合偏好和口味。

        3
  •  0
  •   MikeW    16 年前

    我认为如果您只需要一个简单的状态列表,那么Enums或XML就可以了。如果您有其他依赖数据,比如州税率或邮政编码数据,那么我想我会将这些州存储在数据库中。

    国家也一样。您可能需要根据国家/地区控制语言、货币等。我认为如果它在数据库中,那就更容易处理了。