10

我希望有人可以帮助我建议使用 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 更新评级

考虑到评级是不断更新的,最重要的是在大量数据上使这些查询真正快速。

4

1 回答 1

2

像这样的东西:

Products : { // Column Family  
    productA : { //Row key  
        name: 'The name of the product' // column
        price: 33.55 // column
        tags : 'fun, toy' // column
    }  
}

ProductTag : { // Column Family
    fun : { //Row key
        timeuuid_1 : productA // column
        timeuuid_2 : productB // column
    },
    toy : { //Row key
        timeuuid_3 : productA // column
    }
}

更新
检查此模型以存储最大分数

于 2010-03-19T18:43:57.160 回答