ja klar macht man eine blätterfunktion drauß (ich mache immer nur 10 einträge pro seite).
das problem ist einfach, das ich die kommentare aus tab2 absteigend sortieren muß, aber:
ich kann ja schlecht alle einträge überprüfen bzw. ID´s und mit meiner listentabelle (tab 1) vergleichen.
dann müßt ich ja am ende (wenn ich das als übertriebenes beispiel nehme) 1 million datensätze
prüfen und von jedem datensatz die ID des authors auslesen und in tabelle 1
prüfen, ob der nutzer in meiner liste vorhanden ist:
where NID=authorID AND NID2=meineID..
denn ich will im weitesten sinne sowas wie ein nachrichten system wie twitter oder eine pinnwand bei facebook machen.
also brauche ich ja 2 tabellen -> 1 für als LISTE und 1 tabelle mit allen kommentaren.
wenn ich es umgekehrt mache und nur die nutzer auslese aus meiner liste (sagen wir mal 1000 gespeicherte favoriten) und von denen mir den neusten eintrag anzeigen lasse, sind die kommentare aus der 2. tabelle aber nicht nach datum sortiert, sondern nach der reihenfolge aus tabelle 1, so wie ich die nutzer mal nacheinander mir auf meine merkliste gepeichert habe.
und wie oben beschrieben, wenn ich zuerst die datensätze aus tab2 sortiere und auslese, muß ich dann aber in tab 1
prüfen ob die nutzerid(author) aus tab 2, in tab 1 und mit meiner ID zusammen in einem datensatz ist.
also fange ich mit tab2 an, bin müßt ich unnätig viele datensätze
prüfen und wenn ich mit tab1 anfange, habe ich aber nicht die passende absteigende reihenfolge der kommentare, denn es soll ja vorranging bzw. NUR nach dem alter der kommentare aus tab2 gepfrüft werden.
ich hatte einen 3. gedanken:
jedesmal wenn ein author ein kommentar schreibt, wird in tab1, wo überall seine ID drin steht, ein timestamp gesetzt.
d.h. ich
prüfe normal NID=authorid AND NID2=meine ID ORDER BY Datum DESC
aber dann müßte ich ja auch in sehr vielen datensätzen den timestamp ändern.
denn gehen wir einfach mal davon aus, das der nutzer weltbekannt ist und ihm 1.000.000 leute folgen würden.
d.h. ich müßte dann 1.000.000 datensätze ändern.
im moment fällt mir nix besseres ein.
evtl. hat jemand von euch einen komplett anderen gedanken bzw. eine idee wie ich das nachrichtensystem (so was ähnliches) umsetzen kann?
hmm so ich hät evtl. noch ne andere idee. ich mache eine tab3 in der ich 1 spalte habe, inder der aktuellste timestamp ist und 1 spalte für die nutzerid.
und dann
prüfe ich immer , wenn ich meine liste auslese (tab2) (per while schleife), in der schleife die tab3 where nutzerid=authorid und lese den timestamp in ein 2. array ein.
also array 1 nutzerid (aus tab2)
und array 2 timestamp
dann sortiere ich die arrays nach timestamp (somit ändert sich im selben verhältnis die annordnung der nutzerid) und schon habe ich die passende reihenfolge und dann lasse ich in einer if schleife i=0 bis 10 array1[i] aus meiner kommmentar tabelle (tab2) den neusten datensatz des authors auslesen.