ERLEDIGT
NEIN
NEIN
ANTWORTEN
3
3
ZUGRIFFE
1343
1343
EMPFEHLEN
-
10.11.10 18:19 #1
- Registriert seit
- Oct 2010
- Beiträge
- 1
ALso ich und kollege haben uns mal gefragt wie macht facebook das mit der Pinnwand
Also wir sind so weit gekommen:
du hast
200 freunde auch dementsprechend 200 User_id
die müssen jetzt ja abgefragt werden in der db tabelle "pinnwand" (von User :: message :: date)<--beispeile tabelle mysql
aber vorher wohl alle User_id auflisten die der user hat
so unsere frage ist eben wie die Db abfrage ausieht das nur die meldungen kommen die auch deine freunde sind.
Wir kamen drauf ein schleife zu machen aber rein theoritisch würde es dann zu 200 db anfragen kommen oder irren wir uns da weil das haut ja die performence ja um!?
weil nehmen wir ma du hast 1000 freunde in der liste xD
Also uns geht es nur um die abfrage nicht die begrenzung (z.b 20 letzten pinnwand einträge)
ich hoffe ichhab mich klar und deutlich ausgedrückt
das thema hat uns 3 stunden beschäfftigt heute und wir sind zu keinem ergebinss gekommen
-
Hallo,
angenommen ihr habt folgendes Datenbankschema:
users: [user_id, name]
friendships: [user_id, friend_user_id]
wall_entries: [user_id, text, timestamp]
Dann könnte eine Abfrage der letzten 20 Pinnwandeinträge deiner Freunde so aussehen:
Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
SELECT friends.user_id, friends.name, wall_entries.text, wall_entries.TIMESTAMP FROM friendships INNER JOIN users AS friends ON (users.user_id = friendships.friend_user_id) INNER JOIN wall_entries ON (wall_entries.user_id = friends.user_id) WHERE friendships.user_id = $user_id SORT BY wall_entries.TIMESTAMP DESC LIMIT 20
\edit: Noch eine Alternative:Code sql:1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19
SELECT friends.user_id, friends.name, wall_entries.text, wall_entries.TIMESTAMP FROM wall_entries INNER JOIN users AS friends ON (users.user_id = wall_entries.user_id) WHERE wall_entries.user_id IN ( SELECT friend_user_id FROM friendships WHERE user_id = $user_id ) SORT BY wall_entries.TIMESTAMP DESC LIMIT 20
Grüße,
MatthiasGeändert von Matthias Reitinger (10.11.10 um 18:36 Uhr)
„Gib einem Menschen einen Fisch, und er wird für einen Tag satt. Lehre ihn Fischen, und er wird ein Leben lang satt.“
“For every complex problem, there is an answer that is short, simple and wrong.”
“Pessimism is safe, but optimism is a lot faster!”
Aktuelles Coding Quiz: #17 - Wörter kreuz und quer
-
10.11.10 18:33 #3
Ich verstehe ehrlich gesagt dein Problem jetzt nicht...?
Die Tabelle Pinnwand, skizziert:
[Besitzer]
[Schreiber]
[Nachricht]
[Datum]
Und wenn ich nun alle Einträge meiner Pinnwand haben will, lese ich halt alle Einträge aus, wo ich der Besitzer bin...
Und wenn ich alle Einträge haben möchte, die von meinen Freunden sind, dann benutze ich ein Subselect als Bedingung, so dass nur die meiner Freunde ausgelesen werden...KIDS Kinderbetreuungsdienst
Xing
"When you play the game of thrones, you win or you die. There is no middle ground."
by Cersei Lannister in "A Game Of Thrones"
-
23.01.11 17:08 #4
- Registriert seit
- Dec 2009
- Beiträge
- 3
Joo,
hab grad das Thema gefunden (mit der Suche ;D) und jetzt steh ich total aufm Schlauch
Meine Tabellen sehen folgendermaßen aus:
users: id|name|...
friends: freundaid|freundbid|... (entweder ist man selbst a oder b, was auch mein problem ist ;D)
pinnwand: autorid|...
Wäre cool wenn mit jemand helfen könnte
Danke
Ähnliche Themen
-
Funktion zum testen ob facebook gesperrt ist?
Von Kaufmo im Forum PHPAntworten: 3Letzter Beitrag: 08.11.10, 16:03 -
Facebook App - Auf die Pinnwand schreiben
Von Maggi13 im Forum PHPAntworten: 1Letzter Beitrag: 20.10.10, 19:54 -
MySQL Abfrage bzw. Anzeige funktioniert nicht
Von Boostergermany im Forum PHPAntworten: 2Letzter Beitrag: 01.05.10, 12:47 -
Anzeige MEZ + Realtime + MySQL-Abfrage
Von SimplyFred im Forum Relationale DatenbanksystemeAntworten: 1Letzter Beitrag: 17.02.10, 13:45 -
Anzeige Seriendruckfeld & Wenn Dann Funktion
Von Nospherates im Forum Office-AnwendungenAntworten: 3Letzter Beitrag: 23.10.08, 12:01





Zitieren


Login





