我有一个带有两个表的MySQL数据库:
sample_hash);
(所有表都有一个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已经存在?如果是的话,我怎样才能做到呢?
发布于 2012-03-28 12:04:51
从您描述的需求来看,根本不需要sample_hash表。
您可以将散列保存在sample_name表中,并在该表中对哈希值进行所有查找。
https://stackoverflow.com/questions/9848199
复制相似问题