我希望有人可以帮助我建议使用 nosql 数据库 Apache Cassandra 实现的合适数据模型。超过我在高负载和大量数据下工作的需要。
简化我有 3 种类型的对象:
- 产品
- 标签
- 产品标签
产品:
key - string key
name - string
.... - some other fields
标签:
key - string key
name - unique tag words
产品标签:
product_key - foreign key referring to product
tag_key - foreign key referring to tag
rating - this is rating of tag for this product
每个产品可能有 0 个或多个标签。标签可以分配给 1 个或多个产品。就关系数据库而言,意味着产品和标签之间的关系是多对多的。
“评分”的值经常“非常”更新。
我需要运行以下查询
- 按键选择对象
- 为按评级订购的产品选择标签
- 按标签选择产品 按等级排序
- 按 product_key 和 tag_key 更新评级
考虑到评级是不断更新的,最重要的是在大量数据上使这些查询真正快速。