PHP/MySQL:存储项目ID


PHP/MySQL: Storing item ids

当我在表中存储一些项目,然后想要将URL连接到每个项目时,我只需要像mywebsite.com/item/132这样的东西这将显示关于项目表中第132个项目的信息。这样不好吗?我应该让它像youtube一样,每个项目都有一组随机的字符吗?最好的方法是什么?

只需将项目按通常的数字存储在表中,然后URL看起来更像这样?mywebsite.com/item/a19kgjy

然后一个PHP脚本"解密"a19kgjy并获得一个数字,该数字用于从数据库中获得正确的项目?

这会让一切变得更慢吗?

这很糟糕,因为你正在为服务器添加额外的排序工作。为什么不创建一个这样的表呢?

CREATE TABLE myTable
(
    ID int AUTO_INCREMENT,
    httpLink varchar(max)
)

在这种情况下,您将只对ID 进行排序

我认为这更多地与安全/数据保护问题有关。这真的取决于你是否希望它能被其他人轻易访问。有时,这个数字非常敏感,最好使用散列密钥,例如transaction_id或user_id,在这里你向他人透露你的企业每天有多少交易,或者你的系统有多少用户,这可能会间接导致一些漏洞。但是,如果您想实现哈希方法,我建议您在数据插入期间生成随机哈希,而不是在查询期间使用解密方法。这样可以节省一些处理能力。但请记住为表的哈希字段编制索引。无论如何,数字或哈希都不是一个真正适合搜索引擎的url。