gpt4 book ai didi

php - MySQL 表是否需要自动递增的 ID?

转载 作者:行者123 更新时间:2023-11-29 01:20:48 25 4
gpt4 key购买 nike

所以通常当我创建新表时,我会将一个名为 id 的列设置为主列并将其设置为自动递增。

在我正在处理的一个新项目中,对于每一行我都需要一个特定长度的唯一 ID,在本例中为 15 个字符。

那么我的问题是,使用这个 15 个字符的数字 ID 代替自动递增的 ID 是否存在问题?使用自动递增数字是否有技术原因?

我用它来生成 ID,据我所知,它们保证是唯一的:

$randNum = preg_replace('/[.:]/', '', time().$_SERVER['REMOTE_ADDR']).randomNumber(4)

function randomNumber($length) {
$result = '';
for($i = 0; $i < $length; $i++) {
$result .= mt_rand(0, 9);
}
return $result;
}

更好的算法?

$randNum = round(microtime(true) * 1000).randomNumber(7)

function randomNumber($length) {
$result = '';
for($i = 0; $i < $length; $i++) {
$result .= mt_rand(0, 9);
}
return $result;
}

最佳答案

不,MySQL 不要求有一个自动递增的 ID 列。然而,作为noted in the manual ,索引键对于良好的数据库设计至关重要。如果您手动生成 ID 而不是使用自动递增,那很好,但请确保您用于生成 ID 的算法始终生成唯一 ID(您发布的算法不是这种情况).

关于php - MySQL 表是否需要自动递增的 ID?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32384540/

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