sql-server - 创建一个哈希键作为唯一键
问题描述
我有一个非常大的表,其中包含重复的名称和地址信息。该表提供一个执行任务并将结果附加回表的进程。我想通过在名称和地址信息上创建一个哈希键来减少输入这个过程的数量。这样我可以为每个哈希键提供一条记录,从而减少 75% 的输入。而且我需要这个密钥随着时间的推移保持不变。
但是,由于此哈希键将作为我加入结果表的键,因此我需要它是唯一的。我可以将哈希键创建为持久列,并给它一个唯一的约束,但我担心碰撞的可能性很小。如果两个不同的名称和地址字符串可能产生相同的哈希输出,我仍然需要它们的唯一键。
即使这种情况不太可能发生,我也不高兴知道如果发生了,我就没有计划。
我还考虑过使用表的代理 ID,并使用 MIN(surrogateID) 分配一组名称和地址中的每条记录。但是,如果删除了与给定组的 MIN(surrogateID) 对应的记录,那么现在我的 ID 已更改。
我可以创建一个包含不同名称和地址的查找表,并为每个人提供一个简单的整数 ID。但我宁愿避免存储成本。
还有其他我可能不会考虑的选择吗?
解决方案
推荐阅读
- javascript - 反应悬停状态和类添加到所有链接菜单,而不是仅悬停的一个
- javascript - 我的洪水填充程序遇到问题
- python - 如何在组合框标题和项目之间添加填充
- reactjs - 无法在没有useEffect的情况下访问reactjs中函数内的redux状态变量
- react-native - 有什么方法可以将从 APISAUCE API 接收到的响应存储到异步存储中作为缓存并在 React Native 的平面列表中显示
- python - 我的项目 Django 中的投标系统出现了 IntegrityError
- vba - 如何使用宏抑制/关闭 MS Word 中的特定警告?
- javascript - 减去两个量并拆分为小数值
- c++ - 我似乎无法在任何地方找到直方图排序的时间复杂度?我知道它是桶排序的类型,但确切的时间复杂度是多少?
- jupyter-notebook - 默认启用在 jupyter lab 中显示行号