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