小编典典

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

java

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

我需要为存储用户详细信息的行和另一组存储用户发布的内容的行构造“键”。

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

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

对于用户发布的内容,这将
timestamp+userId是一个很好的关键。timestamp内容发布的服务器时间在哪里,userId指的是用户行的键。

任何建议,评论表示赞赏..

谢谢马科斯


阅读 255

收藏
2020-11-30

共1个答案

小编典典

这是分布式应用程序吗?

然后,您可以使用一个简单的同步计数器,并在启动时使用下一个可用的ID对其进行初始化。

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

2020-11-30