时间戳作为唯一ID

问题描述 投票:0回答:2

我使用有什么问题吗

Long uniqueId = System.currentTimeMillis()/1000;

String documentName = ""+ uniqueId;

例如文档名称? 除非用户输入了错误的日期,否则它将始终是唯一的,对吗? 或者是否有更好的方法来创建始终唯一的数值? 我使用的原因

Long uniqueId = System.currentTimeMillis()/1000;

因为即使用户从没有相同数据的另一台设备生成该文档,它也必须是唯一的,这意味着我无法创建和保存唯一值并简单地向其添加+1。

android timestamp unique
2个回答
4
投票

如果您使用

System.currentTimeMillis()/1000

那么,如果您在同一秒内保存 2 个文件,您将拥有 2 个不同文件的 2 个相同名称。

所以我建议你使用

UUID.randomUUID().toString()

0
投票

即使是技术PK,时间戳也不应该用作“主键”的角色。

uuid
应该是技术 PK 的首选(即没有商业意义),或者可以使用许多其他备用键来帮助从业务角度查找数据或保持各种元信息关联。
uuid7
标准对于将唯一性与时间结合起来非常有用。参考文件名,uuid 长度对于文件名来说是可以的。我在 Windows 和 Linux 上都成功使用了它。

© www.soinside.com 2019 - 2024. All rights reserved.