我正在开发一个项目,要求将文档与客户帐户相关联。每个文档都必须具有唯一标识符。我正在研究的方案是AAA - ####格式。标识符的字母数字部分将允许使用三个字母跟踪日期(元音将被丢弃以防止淫秽或令人反感的单词)。该计划有效期约为21年,一天内提供的文件不超过9999份。前两个字符捕获一年中的序列日期,使用字母表中的21个字母(丢弃的元音)产生21 ^ 2,这足以捕获一年中的某一天。最后一个字母数字字符捕获年份。这又将该计划限制在21年。我想知道是否有人实施了类似的方案以及使用了哪些技术。
答案 0 :(得分:1)
如果同一个用户上传同一个文件怎么办?我没有看到你在这里自动增加任何东西。你有固定的宽度要求吗?我已经实现了类似的方案,但我删除了元音,只是将纪元时间附加到文件名。如果将文件名输入数据库,则可以依赖它来创建和自动增加唯一标识符。那你的问题就变成了如何将文件名转换为固定宽度的标识符?我建议允许用户自己选择标识符并使用数据库来检查唯一性。将用户限制在固定宽度的文本字段是世界其他地方的程序员造成的不良做法。
答案 1 :(得分:1)
一年中的某一天取决于时区。如果您的用户跨越多个时区,则您的命名方案可能无效。
答案 2 :(得分:0)
如果不是按年份递增最后一个字母,而是使用全部三个来表示日期,只是从固定日期开始计算,你可以使它好25年,而不是21年。