2015-12-24 4 views
0

J'ai une table d'index inversée sur une table d'utilisateurs. La table permet d'interroger les utilisateurs par nom de famille. Il s'appelle "users_by_lastname".Index inversé: Supprimer puis Insérer un motif?

La clé primaire de cette table a le nom "lastname", elle ne peut donc pas être mise à jour.

Si un utilisateur change son nom de famille dans le tableau principal "Utilisateurs", devrais-je supprimer et réinsérer dans la table d'index inversée "users_by_last name"?

Je ne peux pas mettre à jour une colonne de clé primaire dans Cassandra ... Y a-t-il d'autres modèles qui traitent mieux cela?

Répondre

0

Dans Cassandra 3.0, vous pouvez résoudre ce problème en créant la table d'index inversée sous la forme d'une vue matérialisée de la table Users. Ensuite, Cassandra se chargera de maintenir la vue automatiquement chaque fois que vous mettez à jour la table de base. Sur les versions antérieures de Cassandra, votre seule option serait d'effectuer une suppression, puis de l'insérer avec le nouveau nom dans la table d'index inversée gérée par l'application.

+0

J'ai essayé MV et il nécessite tous les champs PK de la table principale, ce qui ne fonctionnera pas pour mes autres modèles de lecture. Je pense que MVs est une fonctionnalité intéressante, mais trop restrictive dans sa première version. – Jason