gpt4 book ai didi

php - 将散列 ID 存储在数据库中并获取它,还是在代码本身中创建散列 ID 并使用它?

转载 作者:行者123 更新时间:2023-11-29 07:56:13 25 4
gpt4 key购买 nike

我有两种处理散列 ID 的方法,但需要您的意见,哪种方法比另一种更好,为什么?我对逻辑感兴趣,而不是我用于散列或表数据类型等的技术!

我将生成一个 URL 来处理删除产品,该 URL 将如下所示(最后一段经过哈希处理 (SHA1) Product.id):

...../delete/product/123c45c789ds654dedkjfghr87frd

场景 1:将哈希 ID 存储在表中并像这样使用它:

>查询:

DELETE ...... WHERE hash_id = '$url_hash_id'

>表:

products
id - INT
hash_id - VARCHAR(40)

场景 2:不要将哈希 ID 存储在表中,而是在每次创建 URL 时生成它并像这样使用它:

>查询:

DELETE ...... WHERE SHA1(id) = '$url_hash_id'

>表:

products
id - INT

我能想到的是:

  1. 场景 1 - 表变大(可能是整个数据库,因为我最终可能会为所有表实现相同的列),但哈希过程只运行一次。
  2. 场景 2 - 使用较少的表空间,但使用 mySql SHA1() 函数并且每次我们需要时都会调用 php SHA1() 函数。

最佳答案

我会选择场景 1,因为 WHERE SHA1(id) = '$url_hash_id' 不会使用 mysql 索引。对于大量记录,表扫描会比存储 hash_id 和该列的索引的额外开销更让您丧命。

关于php - 将散列 ID 存储在数据库中并获取它,还是在代码本身中创建散列 ID 并使用它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25088619/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com