سؤال

آمل أن يكون هناك شخص يمكنه مساعدتي في اقتراح نموذج بيانات مناسب يتم تنفيذه باستخدام قاعدة بيانات 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

الأهم من ذلك هو جعل هذه الاستعلامات سريعة حقًا على كميات كبيرة من البيانات ، مع الأخذ في الاعتبار أن التصنيف يتم تحديثه باستمرار.

هل كانت مفيدة؟

المحلول

شيء من هذا القبيل:

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