【发布时间】:2011-01-22 21:07:12
【问题描述】:
再说一次,谈论我即将到来的大学项目...我今天有一节课,我们可以在其中询问有关该项目的信息,但我仍然没有决定最好的方法。
基本上,我有一堆用户(一些结构有几个成员),必须按名称和 SSN 快速搜索。由于我还需要在 Graph 上使用这些用户(用于其他操作),因此我将使用指针。
现在,我想使用两个哈希表。一个键是名称,另一个键是 SSN。但我不喜欢有两个哈希表的想法,只是使用不同的键并指向同一个地方。
我想到了使用带有两个键的哈希表,但我什至不知道这是否可能,我相信不可能。我就是想不出办法,也许有,也许没有。
除了这两个解决方案之外,我想不出任何其他选择......我可能不得不使用两个哈希表。
你们有其他的建议吗?
【问题讨论】:
-
“在图表上使用这些用户”是什么意思?是一次性给定所有用户,然后您必须按名称/SSN 搜索一堆,还是给定一些用户,然后是一些搜索查询,然后是更多用户,然后是更多查询等?
-
请永远不要使用 SSN 作为密钥 :-(
-
不要打扰图表部分,这只是意味着我需要使用图表来做其他事情,但我无法向您解释什么,因为我还没有。 @Steven 为什么不呢?关心证明为什么?而且,也许,提供一个替代方案?您如何建议我通过 SSN 快速查找用户?
-
@Nazgulled 由于涉及的复杂性(额外的解密/加密步骤),使用 SSN 作为索引/密钥通常是个坏主意。也就是说,除非您使用未加密的关键个人数据(您永远不会这样做,对吗?)。如果您想通过 SSN 对表进行索引,请在获得 SSN 后立即通过加密哈希运行 SSN(类似 MD5 就足够了)并使用哈希版本进行所有索引等。
-
您不应该使用 SSN,因为 1) 它们会发生变化(如果发生欺诈,您可以获得新的) 2) 它们被视为私人信息,很难(呃)保护您的主要信息钥匙 3)它们被重复使用(在其前任所有者去世后)