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 に答える