【发布时间】:2021-09-08 04:47:54
【问题描述】:
我正在制作你的电子管的复制品/克隆。但我面临着为视频、频道、播放列表等制作非常独特的 id 的问题。就像你做的那样。
视频 ID
https://www.youtube.com/watch?v=G6Hai-W9pRE
unique video id = G6Hai-W9pRE
频道 ID
https://www.youtube.com/channel/UCeVMnSShP_Iviwkknt83cww
unique channel id = UCeVMnSShP_Iviwkknt83cww
我在互联网上研究并找到了一些解决方案,例如。
解决方案 1
step - 1 : create a random number / string
step - 2 : search for the string in the database , if found return to step 1 or you found your
unique id
问题
如果使用了 90% 的数字,则从 1-100000000 中找到唯一的编号并不是一个很好或有效的方法我认为
解决方案 2
uuid() concept or similar to this random no generator concepts
但我不确定它们是否符合我的要求,或者是否由 2 个并行运行的脚本完成相同的操作?我最终会得到非唯一或重复的 ID ...
我想知道的是---
- 最有效的方法是什么(生成唯一的随机字符串)。
- 优管做了什么
- 我应该使用什么方法。
我只知道这个平台,不知道在哪里可以找到这类问题的解决方案。 如果您能详细阐述和解释我的问题,那就太好了。
提前致谢;
【问题讨论】:
-
您可以使用序列来获取递增的数字。这就是他们的目的
-
那么字符串呢.. 比如
unique channel id = UCeVMnSShP_Iviwkknt83cww -
最快和最简单的将是一个 GUID,该算法将确保唯一性并且不需要时间来生成。如果你想变得更漂亮,你也许可以散列一些关于视频及其上传者的独特属性,并使用散列作为 id。
-
Dazz 你能解释一下你在说什么以及你使用了什么方法吗?我可以散列哪些独特的属性?请我想要一个非常深刻的见解
-
有什么要求?你提到了“独特”。但是“不容易被黑”(因此不是一个简单的数字)呢? “能够重建原始字符串”(与加密一样)怎么样?其他?
标签: php mysql sql database-design unique-key