为严重非规范化的NoSQL数据库设计唯一键(主键)

时间:2011-02-02 11:02:35

标签: java web-services web-applications nosql

我正在使用Java和Cassandra数据库开发与Discussion论坛相关的Web应用程序。

我需要为存储用户详细信息的行构建“密钥”,并且&存储用户发布的内容的另一组行。

一种选择是获取Java语言提供的随机生成的UUID,但这些UUID长度为16个字节。由于NoSQL数据库涉及严重的非规范化,我担心如果密钥可以用较小的大小生成,我是否会浪费大量的磁盘空间,RAM和其他资源。

我需要生成两种类型的密钥,一种用于用户和用户。其他内容由用户发布。

对于用户发布的内容,timestamp+userId是一个好关键。其中timestamp是发布内容的服务器时间,userId是指用户行的密钥。

任何建议,评论赞赏..

由于 马科斯

1 个答案:

答案 0 :(得分:2)

这是分布式应用程序吗?

然后你可以使用一个简单的同步计数器,并在启动时使用下一个可用的id初始化它。

另一方面,数据库应该能够处理由java创建的UUID哈希。 这是创建sessionIds之类的标准,需要是唯一的。 您的问题有点类似,因为您的上下文中的会话将代表一组用户输入。