Question

Considérons une relation M:M qui doit être représentée dans un magasin de données Cassandra.

Quelles options de modélisation M:M sont disponibles ?Pour chaque alternative, quand faut-il préférer ?Quels choix de modélisation M:M avez-vous faits dans vos projets utilisant Cassandra ?

Était-ce utile?

La solution

Au lieu d'utiliser une table de jointure comme vous le feriez avec un rdbms, vous auriez une ColumnFamily contenant une ligne pour chaque X et une liste de Y qui lui sont associés, puis un CF contenant une ligne pour chaque Y et une liste de chaque X associé. avec ça.

S'il s'avère que vous ne vous souciez pas vraiment d'interroger l'une de ces directions, ne conservez que les CF qui vous intéressent.

Autres conseils

Cassandra par la conception est la base de données de valeur clé, afin d'atteindre M: M, il y a deux façons de le faire

.
  1. De-normaliser vos données pour chaque navire relation doit dupliquer les données.

    à savoir

    . x-> y (valeur) et x-> z (valeur) et a-> y (valeur)

    y devraient être enregistrées pour x et

    Voici comment cela devrait être fait comme il est vous donner la force de la base de données

  2. Enregistrer référence pour la clé relationnelle en tant que valeur.

    x-> y (n) et x> z (Key) et a-> y (Key)

    Donc, si vous avez besoin x avec la valeur de y, il devrait être deux opérations, obtenir x qui donnera valeur de vous y. Puis se se y dans une opération séparée.

Cassandra est SGBDR pas ne pas vous enveloppez l'esprit autour de façon traditionnelle de le faire en laissant tomber des valeurs et de définir la relation.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top