PHP/MySQL:存储项目ID

PHP/MySQL:存储项目ID,php,mysql,url,Php,Mysql,Url,当我将一些项目存储在一个表中,然后想要将URL连接到每个项目时,我只有类似于mywebsite.com/item/132的内容 这将显示items表中第132项的相关信息。像这样吃不好吗?我应该让它像youtube一样,每个项目都有一组随机的字符吗?最好的方法是什么 只需将项目按常规数字存储在表中,然后URL看起来更像这样?mywebsite.com/item/a19kgjy 然后一个PHP脚本“解密”一个19KGJY并获取一个用于从数据库中获取正确项的数字 这会使一切都变得更慢吗?这很糟糕,因

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

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

然后一个PHP脚本“解密”一个19KGJY并获取一个用于从数据库中获取正确项的数字


这会使一切都变得更慢吗?

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

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

在这种情况下,您将只对
ID
进行排序,我认为这与安全/数据保护问题更相关。这真的取决于你是否想让别人轻易地访问它。有时,数字非常敏感,最好使用散列键,例如事务id或用户id,您向其他人公开您的业务每天有多少事务或您的系统有多少用户,这可能间接导致某些漏洞。但是如果您想要实现散列方法,我建议您在数据插入期间生成随机散列,而不是在查询期间使用解密方法。这将为您节省一些处理能力。但请记住为表的哈希字段编制索引。无论如何,数字或哈希都不是一个真正适合搜索引擎的url。

它会让搜索速度变慢。“mywebsite.com/item/132”链接足够好了……@Oskwish您指的这些项目是什么?@itsols产品、东西、视频等等。这只是一个例子:POkay,但是正在用AUTO_INC(ofc;)存储ID,然后有只包含ID的URL?保持简单-第一个建议。不要在你的问题中添加你在my中使用的哈希值。我建议使用这种简单的表(当然,如果需要的话,还可以添加其他字段),如果您不喜欢链接中的ID,或者希望“seo友好”,可以使用“slug”字段(varchar类型)。然后,当填充新项目时,生成slug,保存它,然后您可以在URL中使用它们。看起来更好-也许,这在逻辑上与在URL中使用ID有所不同-否:)选择您最喜欢的ID,但不要增加复杂性:)