Les ensembles C * garantissent que tous les éléments d'un ensemble sont uniques. Comment ça marche pour les types définis par l'utilisateur (UDT)?CQL - Unicité des éléments dans un ensemble de types définis par l'utilisateur
Avec des types simples, le nom de la cellule est juste le nom de la colonne CQL concaténée avec la valeur de la colonne. Par exemple, si nous avons
CREATE TABLE friendsets (
... user text PRIMARY KEY,
... friends set <text>
...);
Nous amis sont stockés comme
(column=friends:'doug', value=)
(column=friends:'jon', value=)
si amis est défini comme un ensemble de UTD (amis mis < ami surgelés>)? Le nom des cellules des 'amis' sera-t-il concaténé avec la valeur sérialisée de Friend?
Alors, comment est uniqness appliquée dans un ensemble de UDT? Si un ami a un identifiant et un nom, cela signifie que je serais capable de stocker plusieurs amis avec le même identifiant ... UTD est essentiellement traité comme un tuple - 2 tuples sont égaux seulement si tous leurs champs sont identiques – EugeneMi
Comment pourrais-je mettre à jour le nom d'un ami? Trouvez l'ami par identifiant, supprimez-le, puis insérez un nouvel ami. – EugeneMi
Correct, vous devez supprimer et rajouter l'ami mis à jour à votre ensemble. Pour ce que ça vaut, vous devez également garder à l'esprit les mises à jour simultanées. Vous devez toujours utiliser des instructions CQL individuelles pour supprimer ou ajouter des éléments à un ensemble, au lieu de remplacer l'ensemble complet pour éviter d'écraser les modifications d'une mise à jour simultanée. –