Ich versuche Cassandra Modellierung zu lernen, indem Sie auf die Twissandra project.Apache Cassandra - Folgen/Nicht folgen der Beziehung auf Twissandra Beispiel
Es scheint, dass, wenn der Benutzer einen seiner Follower nicht mehr aufruft, nur die Freundschaft/Follower-Beziehung aus den Tabellen entfernt wird, aber Tweets des nicht gefolgten Benutzers bleiben in der Timeline des Benutzers, der ihn gerade nicht berührt hat.
Auch mit sehr grundlegenden Kenntnissen von Cassandra Modellierung, die ich derzeit habe, scheint es mir, dass es praktisch unmöglich ist, Tweets aus der Timeline zu entfernen. Hier ist das Modell von Twissandra:
CREATE TABLE timeline (
username text,
time timeuuid,
tweet_id uuid,
PRIMARY KEY (username, time)
) WITH CLUSTERING ORDER BY (time DESC)
Da tweet_id ist weder eine Partition Schlüssel noch eine Clustering-Spalte es unmöglich ist, indem sie sie abfragen und den Datensatz zu löschen.
Weiter kann jemand bitte ein Modell vorschlagen, wo es möglich wäre, Tweets der unfollowed Benutzer von der Timeline zu entfernen.
Ich habe mich für einen Tag mit diesem Problem herumgeschlagen und es scheint, als ob das in Cassandra nicht so einfach ist. Ich komme aus der relationalen Welt, also ist mein Standpunkt vielleicht auch falsch.
Vielen Dank für die Antworten. Das Ändern der Tweet_id zu Timeuuid würde den Trick tun, aber ich würde alle Tweet_ids des unfolgeloggten Benutzers auswählen und dann eine Löschung basierend auf diesen Tweet_ids ausstellen müssen. Wenn der Benutzer zu viele Tweets hat, könnte dies ein Problem sein. Was wäre der Anwendungsfall für die Tabelle "folged_users_tweets", die Sie vorgeschlagen haben? Ich brauche irgendwie die Tweets aus der Timeline zu entfernen, also würde ich wieder alle Tweets des Benutzers auswählen müssen, die ich nicht mehr anzeigen möchte und dann ein Delete in der Timeline-Tabelle mit diesen IDs ausstellen. Ich bin mir nicht sicher, ob das funktionieren würde. – Milan