2012-12-16 7 views
1

J'essaie de stocker des commentaires très simples dans une large rangée, mais le problème est que je veux avoir les meilleurs commentaires.Cassandra commentaires modèle de données

Donc, au début, je l'ai essayé d'utiliser UTF8 type de comparaison et le nom de chaque colonne commencerait par aime montant et serait suivi d'horodatage, par exemple:

Comments_CF = { 
    parent:{ 
     8_timestamp: comment, 
     5_timestamp: comment, 
     1_timestamp: comment, 
     ... 
    } 
    ... 
} 

Le problème avec cette approche est que, par exemple 2_timestamp>19_timestamp parce lexicographique 2 est plus grand que 19

Je pourrais probablement enregistrer des commentaires dans un top CF séparé mais je aurais besoin de faire deux requêtes au lieu d'un, donc je voudrais vraiment éviter cela, tout su ggestions?

Répondre

1

2 requêtes au lieu d'une n'est généralement pas un gros problème. Vous pouvez également faire une valeur composite (nombre de likes + le commentaire) et trier les commentaires vous-même .... De choses que j'ai vu il n'y a jamais beaucoup de commentaires, sauf quelques messages de toute façon, ce qui serait très rapide.

Il existe d'autres motifs qui pourraient susciter des idées ici aussi ...

https://github.com/deanhiller/playorm/wiki/Patterns-Page

+0

En réalité, je l'ai déjà dans certains cas, de 2 à 4 autres requêtes effectuées pour charger d'autres choses, donc je tiens à éviter tout ce dont je n'ai pas besoin. Je vais certainement regarder les valeurs composites, merci. – Linas

1

Utilisez un composite, où le premier composant est un long et le second quel que soit le type approprié pour votre format d'horodatage. De cette façon, le tri sera correct.

Questions connexes