这是什么样的主键?

时间:2011-08-13 19:10:39

标签: mysql sql database-design

这是id

DIAK6c

和另一个

65d0a2

第一个ID来自wahoha.com,第二个来自webanswers.com。如何在我的数据库中生成这样的ID。我有asp.net c#

的mysql

3 个答案:

答案 0 :(得分:1)

尝试:( 10个随机数字,如6422ab8810

SELECT LEFT(MD5(RAND()), 10)

要拥有一个Id,你必须使用字符串数据类型,这从性能视角来看并不是最好的选择(索引重建速度会降低)。因此在使用这样的Id作为主键之前重新考虑10次。

除了INT PRIMARY KEY主RowId之外,这可能是某种额外的ID。

答案 1 :(得分:1)

基本上有两种方法,你可以在数据库中保留整数标识符,并在公开它们时转换为字符组合,或者创建字符组合(通过随机,散列,排列,等等)作为键。数据库。

第二个示例看起来像十六进制表示,可以从整数键中轻松创建:

int id = 6672546;
string idString = Convert.ToString(id, 16);

答案 2 :(得分:1)

这很可能是使用可逆算法编码到该表单的整数,一种简单的方法是将数字id从基数10转换为基数36:

CONV( 5234525977, 10, 36 )

结果将是'2EKI23D',您可以轻松地将其转换回整数形式:

CONV( '2EKI23D', 36, 10 )

结果:5234525977

相关问题