我正在开发一个存储用户创建的调查的数据库。数据库需要为每个调查存储一个唯一的 ID。使用 SQL,我只使用 SERIAL 列类型,这样每一行都有一个自动递增的数字键。
SimpleDB 似乎将所有内容都存储为字符串,这意味着我必须自己生成一个唯一的 key 。由于此 key 将成为 URL 的一部分,我认为 UUID 太长了。我希望能够使用以下内容加载调查:
foo.com/1a
有没有办法让 SimpleDB 为您存储的每个项目生成一个唯一的行 ID?谢谢!
最佳答案
好的,所以你在这里征求意见....我会选择任何其他存储机制而不是 simpledb。例如,您可以轻松地将 MongoDB 作为关系数据库的文档存储替代方案,并获得比 SimpleDB 更多的好处。
至于想要一个简短的唯一 URL,您可以搜索并找到一个 ruby 实现来将 ID 转换为短 ID。 http://blog.kischuk.com/2008/06/23/create-tinyurl-like-urls-in-ruby/
该实现会将 1174229 变成“7sH_”(根据帖子。YMMV)
所以,你会有类似的东西
class Survey
include Mongoid::Document
def to_param
generate_url(self.id)
end
end
在 route
resources :surverys, :path=>''
那会产生
http://yourapp/7sh_
当然,这种技术也适用于非 mongo 安装。
关于ruby-on-rails - Amazon SimpleDB 是我数据的不错选择吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5366974/