我有一个想法,这可能是不好的,原因我不知道,但我真的很希望你能给我反馈!
我们在一个PHP项目中使用Session ID。四年来,第一次生成了一个重复的sessionid。幸运的是,我随机决定查看客户表,因为我很无聊,发现在sessionid列中有一个重复的条目,并在出现任何实际问题之前更改了它以及对它的引用。
这引导(或引领)我提出了这个问题:
基本上,任何类型的ID,无论是会话ID、UUID还是GUID,都可能最终被复制,因为它们的长度不是无限的。所以我开始思考,因为我们永远不希望这种情况再次发生。
我想,如果我们使用日期和时间的组合作为标识符,怎么样?这不会是“随机”的,但它可以解决重复问题。例如:
14th of May 2011 04:36:05PM
如果作为标识符使用,可以更改为:
14052011163605
这种ID永远不会被复制的原因是因为未来的日期和时间与过去或现在的日期和时间不同。而且,在我们的情况下,这些ID不需要被任何人看到,所以没有理由让它随机,对吧?
我很想听听您对此的想法以及您处理这种情况的方法。生成[实际上]唯一ID的最佳方法是什么?