Ich woking auf ein Projekt und ich denke über den Follower und folgende System wie twitter.Ich habe Mitglieder Tabelle auf Datenbank.Wie kann ich Follower System.Whats ist die Logik? Ich arbeitete über so etwas: Ich schuf neue Tabelle, der Name folgt und ich habe 3 rows.Diese Zeilen sind id, user_id, follower_id. Ist das genug für mich? Ich habe keine Ahnung, wie dieses System funktionieren kann. Kannst du mir helfen?Was ist die Logik der Following- und Follower-Systeme?
Antwort
Ja, das Design für eine einfache folgendes System ausreichend ist wie das von Twitter. Natürlich können einige zusätzliche Daten (wie der Zeitstempel, wie von @Ina vorgeschlagen) nützlich sein und Sie brauchen nicht unbedingt die id
darin.
würde ich so etwas empfehlen:
userID INT PRIMARY,
followID INT PRIMARY,
creationTime DATETIME
Angenommen, Sie haben eine einzelne Entität von People
, müssen Sie eine Viele-zu-Viele-Beziehung von People
zu People
erstellen. In Ihrer Verknüpfungstabelle haben Sie zwei Spalten: PeopleID
und Following
.
Um nach Followern eines Benutzers zu suchen, suchen Sie in der Spalte Following
nach der ID dieses Benutzers. Suchen Sie in der Spalte PeopleID
nach, wem ein Benutzer folgt.
"Folges" (oder "wird gefolgt von") ist eine Beziehung zwischen zwei Benutzerentitäten, die Ihre Tabelle widerspiegelt.
Dies bedeutet, dass Sie nicht einmal die id
benötigen, es sei denn, Sie planen mehrere Folgen und Abfolgen zwischen den gleichen Benutzern als separate Einträge zu behandeln.
Machen Sie den user_id
und follower_id
Referenz user
mit einem FOREIGN KEY
, machen sie sowohl einen zusammengesetzten Primärschlüssel und erstellen Index auf follower_id
(eine Liste der Benutzer zu erhalten folgt man schnell):
CREATE TABLE
follows
(
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
PRIMARY KEY
(user_id, follower_id)
KEY follower_id (follower_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
Sie können andere hinzufügen Attribute auch.
Wenn Sie verfolgen möchten, folgt und unfollows zwischen den gleichen Benutzer dann müssen Sie diese zu einer Einheit fördern, ein Surrogat Primärschlüssel hinzu:
CREATE TABLE
follows
(
id INT NOT NULL PRIMARY KEY,
user_id INT NOT NULL REFERENCES user (id),
follower_id INT NOT NULL REFERENCES user (id),
-- These are additional attributes
follows_from DATETIME NOT NULL,
follows_till DATETIME,
--
KEY follower_id (follower_id),
KEY user_id (user_id)
)
ENGINE=InnoDB -- if you want the foreign keys to work
Angenommen, Sie haben bereits eine Website, wo sich Benutzer anmelden, werden Sie eine Tabelle in der Datenbank mit zwei Spalten hinzufügen möchten, entweder ‚Friend1‘ und ' friend2 '(unter der Annahme, dass Freundschaft eine bidirektionale Beziehung ist) oder' leader 'und' follower '(für die unidirektionale Beziehung eines Abonnements). Dann werden Sie ein kurzes PHP-Skript benötigen, das friend1 und friend2 als Eingaben akzeptiert (z. B. als POST- oder GET-Variablen) und dieses Paar in die Datenbank eingibt. Fügen Sie schließlich eine Schaltfläche auf Ihrer Website hinzu, die entweder einen AJAX-Aufruf an dieses PHP-Skript oder Teil eines HTML-Formulars, dessen Ziel das PHP-Skript ist.
- 1. Was ist die Logik hinter diesem Programm?
- 2. Was ist der Unterschied zwischen Algorithmus und Logik?
- 3. Die Logik und Mathematik der Objektorientierung
- 4. Was ist die Logik hinter dieser speziellen Python-Funktionszusammensetzung?
- 5. Was ist die Logik hinter dem Fourier-Divisionsalgorithmus?
- 6. Was ist die Logik von automatisch generierten Kommentaren hinter Bitbucket?
- 7. Was ist falsch mit meiner Logik
- 8. Was ist los mit der Logik in meinem Programm?
- 9. Was ist und was ist die Verwendung der Closure „Richtlinie“
- 10. Target Smooth Following
- 11. Was ist die Serviceklasse in der Programmierung?
- 12. Bestellung von mehreren Legenden/Führer (Was ist die automatische Logik und wie man es ändert?)
- 13. wollen Following JSON Ausgabe erhalten
- 14. Was ist die Logik hinter der "Reihenfolge des Anwendens von Filtern" in Apache Lucene
- 15. Python: Was passiert, wenn Code ausgeführt wird, was ist die Logik?
- 16. xpath following-gleichgeordnete und Gruppierung wie Elemente in einer Tabelle
- 17. Was ist Logik hinter Super.Methode oder nach Super.Methode in Android?
- 18. Was ist die Lebensdauer und der Umfang der eingeschlossenen Schleifenvariable?
- 19. Firebase und Backend-Logik
- 20. Twitter-Stil Following-Follower-Tabelle in SQL
- 21. Was ist die Logik, die den JavaScript-String-Vergleichen zugrunde liegt?
- 22. Was ist die Verwendung von .exp und was ist der Unterschied zwischen .lib und .dll
- 23. Semantics der Booleschen und Vergleichsoperatoren im Rahmen der dreiwertigen Logik
- 24. Unerwarteter Fehler der Logik
- 25. Was ist der Unterschied zwischen `==` und `ist`?
- 26. Logik und diskrete Mathematik
- 27. Was ist der Zweck der Verwendung von Logik-Tags in Struts?
- 28. Was ist die Logik für x, y = y, x, um die Werte in Python zu tauschen?
- 29. Android Render und Logik Threads
- 30. Was ist Boxen und Unboxing und was sind die Kompromisse?
Dies scheint ein vollkommen akzeptables Design. Sie können Follower eines Benutzers finden, indem Sie in 'user_id' nach diesem Benutzer suchen und herausfinden, wem ein Benutzer folgt, indem Sie in 'Follower_ID' nach diesem Benutzer suchen. Möglicherweise möchten Sie zusätzliche Metadaten wie einen Zeitstempel hinzufügen, damit Sie wissen, wann die Beziehung zuletzt aktualisiert wurde. Je nach Anwendungsfall können Sie auch verfolgen, wann die Beziehung begonnen oder beendet wurde. – Ina
_ "Ich habe eine neue Tabelle erstellt, der der Name folgt und ich habe 3 Zeilen" _ - du meinst "3 ** Spalten **"? –