我描述的地址结构,它看起来像:如何为地址结构生成唯一标识符?
class Address
{
public string AddressLine1 { get; set; }
public string AddressLine2 { get; set; }
public string City { get; set; }
public string Zip { get; set; }
public string Country { get; set; }
}
我正在寻找一种方法来创建这个结构的唯一标识符(我认为它应该是一个类型的还string
),这取决于所有的结构属性(例如AddressLine1
的改变也将导致结构标识符的改变)。
我知道,我可以将所有属性连接在一起,但是这会给出太长的标识符。我正在寻找比这更短的东西。
我还假设不同地址的数量不应该超过100M。
有关如何生成此标识符的任何想法?
在此先感谢。
这方面的一个史前:
有在举办一些信息+地址数据的数据库几个不同的表。数据以与上述类似的格式存储。
不幸的是,将地址数据移动到一个单独的表中现在非常昂贵,但我希望它将在未来完成。
我需要将一些额外的属性与地址数据关联起来,并为此创建一个单独的表。这就是为什么我需要唯一标识地址数据。
请给我们更多的上下文。几乎可以肯定有更好的方法来解决这个问题。 – 2013-04-07 11:54:50
在一般意义上,没有办法做出完美的散列函数。您需要首先拥有所有这些100M独特地址,然后才有可以创建您的函数的算法和软件,这些函数可以将每个地址映射到唯一的数字,而不必将它们全部存储起来。正如乔恩所说,与尝试创建完美的哈希值相比,很可能有更好的方法来处理您的问题。 – 2013-04-07 11:57:19