首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL表关系与md5哈希的使用

问MySQL表关系与md5哈希的使用
EN

Stack Overflow用户
提问于 2012-03-24 00:55:15
回答 1查看 272关注 0票数 2

我有一个带有两个表的MySQL数据库:

sample_hash);

  • sample_hash

  • sample_name(存储一个文件的名称,同一个sample_name的多个名称(存储文件的散列,不会存储重复的md5);

(所有表都有一个id int,未签名的非空auto_increment)

我将这两个表关联起来的第一个选择是在两个表中创建一个md5列并将它们关联起来。然而,这似乎有一个缺点,因为我将复制varchar(32),这可能是浪费空间与数百万记录。

我的第二个选项是首先计算文件散列,获取sample_hash表的sample_hash并插入到sample_name表中。如果sample_hash表中的哈希是新的,那么这是有意义的,因此我可以使用mysql_insert_id()变量。

但是如果哈希已经存在于samples_db中,我不想再次存储哈希,所以我将没有mysql_insert_id()。

除了搜索给定md5的id之外,是否还有其他选择,以便将其存储在samples_name表中,以防md5已经存在?如果是的话,我怎样才能做到呢?

EN

回答 1

Stack Overflow用户

发布于 2012-03-28 12:04:51

从您描述的需求来看,根本不需要sample_hash表。

您可以将散列保存在sample_name表中,并在该表中对哈希值进行所有查找。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9848199

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档