在我的mysql数据库中,我存储可以在我的PHP web应用程序中显示的产品。每个报价都有其独特的自动增量数据库ID,我不想向用户显示该ID。但是,我需要一些公共的唯一标识符。
为什么我不想显示真实ID
我想从公共ID得到什么
我所知道的
我在想的:
问题:
发布于 2013-12-19 08:39:49
从可用性的角度来看,使用字母和数字可能会更好,而且你会得到更多的组合。
在大多数情况下,存储大约一百万这样的内存不会造成太大的破坏。
是预先生成这些代码还是按需生成这些代码将是一个使用问题--1000人是否可能同时生成代码?如果是的话,先建好它们。存储空间是一个因素吗?如果是这样的话,可以考虑在飞行中生成它们。
您可能应该避免两个报价代码相同的潜在可能性,所以要么根据需要将它们与实际报价挂钩,要么确保生成器功能为每次使用生成唯一的报价代码。
发布于 2013-12-19 08:53:01
好吧,你能做的最好的事情是:1)用完整的参数(yyyy:mm:ss)从日期生成一个变量,并将它与用户电子邮件连接起来。用md5对其进行编码。
(2)或者使用名为NEWID()的MSSQL服务器中存在的guid生成器,这与c# GUID相同
您可以将它从0转到所需的字符数。
我不会重新建议将未使用的数字列表作为性能的原因。
将它作为整数也不是很好,因为它更容易生成一个从0到9个字符的数字来黑入你的数据库(注射和类似的东西)。
https://stackoverflow.com/questions/20676134
复制相似问题