我正在创建一个以文件为导向的数据库,用于存储各个用户执行的一些测试结果。因此,我需要为数据库中的每个条目生成唯一的标识符。这些标识符必须满足以下要求:
有时会出现相同结果的情况,即不保证唯一性。有没有其他方法来实现唯一性?更改种子值是否有助于实现唯一性?
- 标识符应该相当小(最多6个字符)
- 对于每个测试用例和用户组合,每次都应生成相同的标识符
@chars = split(//,$hash_var);
$hash = 0;
$seed = 31;
foreach $char ( @chars ) {
if( $char !~ m/\d/ ) {
$hash = ( $seed * $hash ) + ord( $char );
}
else {
$hash = ( $seed * $hash ) + $char ;
}
}
$hash = ( $hash & 0x7FFFFFFF ) % 1000;
$hash = "$chars[0]$chars[$#chars]$hash" ;
有时会出现相同结果的情况,即不保证唯一性。有没有其他方法来实现唯一性?更改种子值是否有助于实现唯一性?