我正在使用 MongoDB 作为我正在构建的 Rails 应用程序的后端。默认情况下,Mongo 为其记录生成 24 个字符的十六进制 id 以使分片更容易,所以我的 URL 最终看起来像:
example.com/companies/4b3fc1400de0690bf2000001/employees/4b3ea6e30de0691552000001
这不是很漂亮。我想坚持 Rails url 约定,但也将这些 id 保留在数据库中。我认为一个愉快的折衷方案是使用更多字符将这些十六进制 id 压缩为更短的集合,因此它们看起来像:
example.com/companies/3ewqkvr5nj/employees/9srbsjlb2r
然后在我的控制器中,我会反转压缩,获取原始的十六进制 id 并使用它来查找记录。
我的问题是,来回转换这些 id 的最佳方法是什么?我当然希望它们尽可能短,而且 url 安全且易于转换。
谢谢!