nosql – HBase:关于模式设计

我正在阅读/研究HBase并试图创建一个Schema.我来自RDBMS背景,这是第一次尝试使用nosql db.我有一个关于模式设计的简单问题:

假设有三个表=>专辑,照片,评论

> album< =由用户创建
> photo< =包含上传到相册的所有照片
> comments< =包含相册或照片上的评论者 应该提取一张带有所有评论的照片.
应该提取一张专辑,其中包含所有照片但不是评论.

用户通过电子邮件识别.我提出的架构:

tbl_user

email || info: {password : ...,name : ...}

专辑

<email>:album:<timestamp> || info {title:...,cover: photo-row-key}

照片

<album-row-key>:<timestamp> || info {caption:...,exif: ...}

评论

<album-row-key or photo-row-key> || comments {
    comment:<timestamp>: {user: <email>,text:...}
    comment:<timestamp>: {user: <email>,text:...}
    ...
}

>这个设计看起来不错吗?我只想知道应该/必须完成的修改以及原因.
>照片行键是否应该在专辑行键之前(可能是为了节省空间)?
>关于评论表,是否应创建评论行键,如< album-row-key或photo-row-key&gt ;: comment:< timestamp>?按照上述模式,每当用户创建注释时,我需要阅读注释列,使用新注释更新它并使用tha更新行.听起来不错吗?

如果您可以共享一些链接,这些链接具有适合RDBMS的模式示例,那将非常有用:)

解决方法

另一种方法是将评论和照片以及相册放在同一个表格中
还放了照片&一列专栏中的照片评论和另一专栏系列中的专辑评论

>专辑行有关键邮件:专辑:0:0:时间戳照片行有关键
>电子邮件:相册:照片:0:时间戳照片评论行键
> email:album:photo:comment:timestamp album comment row key
>电子邮件:相册:评论:时间戳

然后,您可以根据需要在单个访问中获取数据.例如.:

>前缀一次扫描可以获得包含所有照片和所有照片的相册他们的评论>通过前缀和最后一个键进行一次扫描将为您提供专辑见证了它的照片而不是评论>通过电子邮件进行一次扫描:第二列家族的专辑将为您提供所有相册评论>通过电子邮件进行一次扫描:相册:照片前缀会为您提供照片及其所有评论>通过电子邮件进行一次扫描:包含所有列系列的相册将为您提供所有数据>使用endkey by album.max通过电子邮件扫描:将为您提供用户的所有相册>等

相关文章

文章浏览阅读752次。关系型数据库关系型数据库是一个结构化的...
文章浏览阅读687次,点赞2次,收藏5次。商城系统中,抢购和秒...
文章浏览阅读1.4k次。MongoTemplate开发spring-data-mongodb...
文章浏览阅读887次,点赞10次,收藏19次。1.背景介绍1. 背景...
文章浏览阅读819次。MongoDB连接失败记录_edentialmechanisn...
文章浏览阅读470次。mongodb抽取数据到ES,使用ELK内部插件无...