art*_*ify 0 .net c# guid identifier uniqueidentifier
我正在寻找一种算法,该算法生成适合于两者的标识符,例如URL中的外部使用以及具有以下要求的持久性:
我查看了各种解决方案,但我发现的所有解决方案都有一些重要的权衡.例如:
编辑:为什么这个被标记为偏离主题?这些要求描述了可以提供许多合法解决方案的特定问题.事实上,这里的一些解决方案非常好,我正在努力选择一个标记作为答案.
如果可能的话,我会保持用户要求(简短,可读)和数据库要求(增量,快速索引)分开.面向用户的需求发生变化.您不希望必须修改表,因为明天您决定更改面向用户ID的长度或其他细节.
一种方法是使用用户友好的字符生成您的ID,
23456789ABCDEFGHJKLMNPQRSTUVWXYZ并将其随机化.
但是,当插入数据库时,不要将该值作为它引用的记录的主键,甚至将其存储在该表中.使用标识主键将其插入自己的表中,然后将该密钥int或bigint密钥存储在您的记录中.
这样,您的主表可以具有增量主键.如果您需要通过其"友好"ID引用记录,那么您可以加入友好ID表.
我的猜测是,如果你生成足够高的这些ID,那么你关心的是索引性能,那么人类用户检索这些值的速度就会低很多.因此,友好ID表中随机值的稍慢查找不会成为问题.
| 归档时间: |
|
| 查看次数: |
2944 次 |
| 最近记录: |