Cassandra查找表用于虚荣URL和Base64编码的UUID

时间:2014-01-27 12:48:10

标签: database-design cassandra lookup vanity-url

方案

关于猫的大型,高性能,可扩展的分布式网站。

详情

  • 每只猫都有自己的页面,其中包含一些细节,例如平均睡眠时间,最喜欢的食物和最差的敌人。
  • 页面可以通过设置的虚拟网址(即cats.com/terminator-cat)或其UUID的Base64Url表示来访问(即cats.com/w4rTb789mmN0c ...)
  • 还有一个API,它只接受Base64表格。
  • 出于友善目的,UUID对公众隐藏。
  • 该网站使用Cassandra 2作为主要数据库。
  • 要考虑的额外细节,还会有以下形式的其他疑问:找到喜欢X食物的猫,Y敌人,......但这不是被问到的。

问题

知道要存储的数据及其查询方式,建模的正确方法是什么?

我想到了一个猫表,其中每个输入键都是UUID。还有两个单独的查找表,一个用于Base64编码的字符串,另一个用于自定义名称。

页面控制器将查看url参数是否为Base64字符串,如果是,则首先查询loookup表以获取UUID,然后查询数据表。如果不是,请查询名称查找表,然后查询数据。如果在查找或数据表中找不到,则返回404。

这种方法有问题吗?我应该考虑什么?您还会推荐其他什么方式?

我必须说我是Cassandra的新手,任何提示都会有所帮助。

1 个答案:

答案 0 :(得分:0)

如果你的开发还不算太晚,我建议你只使用sha-256虚荣URL作为你的id并进行一次查找。使用这种方法,您必须使您的界面不允许在设置后更改虚荣网址,并且您应该将其设置为必填字段。这简化了您的应用程序。