我正在使用Java和Cassandra数据库开发与Discussion论坛相关的Web应用程序。
我需要为存储用户详细信息的行构建“密钥”,并且&存储用户发布的内容的另一组行。
一种选择是获取Java语言提供的随机生成的UUID,但这些UUID长度为16个字节。由于NoSQL数据库涉及严重的非规范化,我担心如果密钥可以用较小的大小生成,我是否会浪费大量的磁盘空间,RAM和其他资源。
我需要生成两种类型的密钥,一种用于用户和用户。其他内容由用户发布。
对于用户发布的内容,timestamp+userId
是一个好关键。其中timestamp
是发布内容的服务器时间,userId
是指用户行的密钥。
任何建议,评论赞赏..
由于 马科斯
答案 0 :(得分:2)
这是分布式应用程序吗?
然后你可以使用一个简单的同步计数器,并在启动时使用下一个可用的id初始化它。
另一方面,数据库应该能够处理由java创建的UUID哈希。 这是创建sessionIds之类的标准,需要是唯一的。 您的问题有点类似,因为您的上下文中的会话将代表一组用户输入。