为现有模式建议Cassandra数据模型

时间:2010-03-19 18:12:23

标签: database-design data-modeling nosql cassandra key-value

我希望有人可以帮我建议使用nosql数据库Apache Cassandra实现合适的数据模型。比我更需要它在高负荷和大量数据下工作。

简化我有3种类型的对象:

  • 产品
  • 标签
  • ProductTag

产品:

key - string key
name - string
.... - some other fields

标签:

key - string key
name - unique tag words

ProductTag:

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
  • 更新评分

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

1 个答案:

答案 0 :(得分: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
    }
}

<强>更新
请检查此Model to store biggest score