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

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

有帮助吗?

解决方案

像这样的东西:

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
    }
}

更新
检查这个 模型存储最大分数

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top