【发布时间】:2017-10-31 10:24:09
【问题描述】:
我有员工数据,每个员工都有地址信息。我需要为邮政编码(5 个字符)和地址 line1(35 个字符)生成一个唯一的 9 位(数字或字母数字)值,这是表示位置的唯一值。它也被称为“Wrap number”。
如下图所示,当两个员工的地址相同时,Wrap Number 应该相同,否则应该分配新的值。
哪种算法最适合生成 9 位唯一值?
附:我需要用 Java 编程。
【问题讨论】:
-
哈希怎么样?
-
地址相同但邮政编码不同时会发生什么?此外,似乎可能有一些额外的业务逻辑,你应该得到一些澄清。因此,您可以使用用于存储记录的数据库分配的 id,可选的左侧填充为 '0'
-
提示:您无法保证它是唯一的,这仅仅是因为可行的地址比 9 个字符的唯一代码要多。
-
创建一个数据库表,主键由名称和地址组成。然后让数据库做维护一个自增列的工作。除此之外,Java 中的某种 UUID 技巧可能是你能做的最好的。
-
这样做的真正目的是什么?您如何访问/索引这些数据?
标签: java algorithm unique uniqueidentifier