Autor |
Eintrag |
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:23.03.03 23:41 IP: gespeichert
|
|
Anregung / Wunsch für auf der ersten Seite:
Anstatt die x neuesten Beiträge anzuzeigen, nur die x Threads, wo Beiträge am neuesten zugekommen sind...
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:24.03.03 01:15 IP: gespeichert
|
|
genaugenommen wird auch nur der Thread angezeigt. Du meinst vielleicht, dass bei besonders aktiven Threads die alten Beiträge aus der last40Answerlist verschwinden sollten, damit nicht von 40 Einträgen vielleicht 10 zu einem Thread gehören.
Das wäre, wenn überhaupt, nur für die nächste Version realisierbar. Ich muss mal darüber nachdenken, ob man dafür eine passende Datenbankanfrage findet.
Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:24.03.03 17:52 IP: gespeichert
|
|
nene, nicht ganz so einfach. Ich rede von SQL-Anfragen. Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
KG-Träger


Beiträge: 296
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:24.03.03 19:08 IP: gespeichert
|
|
Hi Johni,
Zitat | nene, nicht ganz so einfach. Ich rede von SQL-Anfragen. |
SELECT Thread FROM Letzte_Threads GROUP BY Thread LIMIT 40;
Viele Grüße JustSeeDontTouch
|
|
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 01:39 IP: gespeichert
|
|
Ja, ich wollte nicht "die Threads, die die 40 neuesten Messages enthalten", sondern "die 40 bzw. 20 letzten Threads, wo Messages angekommen sind". Das entspricht der SQLAnfrage von JustSeeDontTouch.
Eine andere Möglichkeit wäre, eine last_active_threads Set zu pflegen mit begrenzter Länge: Jedesmal, wenn eine Nachricht hinzugefügt wird, wird ihr Thread als letzten in die Set gehängt, dabei wird er nur zur letzten Position verschoben, wenn er schon drinnen war, dazu gegeben, wenn die Set noch nicht voll war, oder der Thread, der in erster Position war, wird aus der Set genommen, um Platz zu schaffen. Das Ganze ist SQLmässig nicht schwierig, und das Anzeigen der neuesten Threads ist keine echte Query mehr, sondern nur noch Auflisten der fertig gepflegten Set.
Naja, für die nächste Version... Oder die übernächste!
|
|
KG-Träger


Beiträge: 296
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 05:16 IP: gespeichert
|
|
Hi J_Oxtrap,
Zitat | Ja, ich wollte nicht \"die Threads, die die 40 neuesten Messages enthalten\", sondern \"die 40 bzw. 20 letzten Threads, wo Messages angekommen sind\". Das entspricht der SQLAnfrage von JustSeeDontTouch. |
nein, tut es nicht. Mit "Letzte_Threads" ist die aktuelle Liste gemeint.
Viele Grüße JustSeeDontTouch
|
|
KG-Träger


Beiträge: 296
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 05:30 IP: gespeichert
|
|
Hi Johni,
Zitat | SELECT nachrichten_table.ThreadID, nachrichten_table.PostSubject, nachrichten_table.PostTime, thread_table.ThreadName, user_table.uName, thread_table.BoardID FROM nachrichten_table LEFT JOIN user_table ON (nachrichten_table.nUserID = user_table.UserID AND user_table.ForumID=1) LEFT JOIN thread_table ON (nachrichten_table.ThreadID = thread_table.ThreadID AND thread_table.ForumID=nachrichten_table.ForumID) WHERE nachrichten_table.ForumID = 1 AND ORDER BY nachrichten_table.PostTime DESC LIMIT 40 |
was ich nicht verstehe sind "user_table.ForumID=1" und "nachrichten_table.ForumID = 1".
Da ich jetzt keine Daten zum Testen hab sehe ich drei Möglichkeiten:
a.) Es funktioniert schon wenn Du einfach ein GROUP BY anhängst. Kritisch ist vor allem welche Zeit/welcher User/... dann angezeigt wird.
BTW: Die Zeit brauchst Du doch eigentlich gar nicht zu SELECTen, oder?
b.) Du machst das mit einer SubQuery. Also das "LIMIT 40" raus und zusammen mit "GROUB BY" in das äußere SELECT.
c.) Du hast ein MySQL daß das noch nicht kann: zur Not in eine temporäre Tabelle schreiben. Die paar mal am Tag an der eine Nachricht geschrieben wird sollte das zu verkraften sein. Falls nicht eine eigene Datenbank/Tabelle im RAM nehmen. Die "innere" (Sub)Query kannst Du dann ja z.B. auf 100 oder so LIMITen. Wenn nicht gerade dummerweise die letzten 100 Beiträge aus einem Thread sind paßt das schon. 
Wenn Du mir sagst welche Datenbank Du nimmst und mir die Daten zur Verfügung stellst (können auch Beispieldaten sein) teste ich das auch gerne mal.
Viele Grüße JustSeeDontTouch
|
|
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 12:49 IP: gespeichert
|
|
Meine Idee war nicht, eine Query an die existierenden Tabellen zu schicken, sondern eine extra Tabelle mit den letzten Threads zu pflegen.
OK, ich mach s selber, sobald ich mit PHP ein bißchen rumgespielt habe (in einigen Wochen). Es eilt eh nicht.
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 19:43 IP: gespeichert
|
|
@J_Oxtrap es wird keine Extratabelle geben, da dieses Problem auch mit einer Tabelle lösbar ist. Redundanzen sind nicht gut.
@JustSeeDontTouch ForumID=1 definiert das Forum, in dem man sich befindet. Es ist ja eine Multiforumsoftware. Hat also nichts mit der Sache zu tun.
Zitat | a.) Es funktioniert schon wenn Du einfach ein GROUP BY anhängst. Kritisch ist vor allem welche Zeit/welcher User/... dann angezeigt wird.
|
genau deshalb scheint er auch zu streiken. Group By erzeugt nur eine Fehlermeldung.
Zitat | BTW: Die Zeit brauchst Du doch eigentlich gar nicht zu SELECTen, oder?
|
die wird auch mit erscheinen.
Zitat | b.) Du machst das mit einer SubQuery. Also das \"LIMIT 40\" raus und zusammen mit \"GROUB BY\" in das äußere SELECT.
|
ich wüsste nicht, dass SubQuery (also subselect) schon funktioniert.
Zitat | Wenn Du mir sagst welche Datenbank Du nimmst und mir die Daten zur Verfügung stellst (können auch Beispieldaten sein) teste ich das auch gerne mal.
|
wenn Du möchtest, gebe ich Dir einen Zugang zu meinem phpMyAdmin. Dann kannst Du die Frage direkt am Beispieldatensatz testen.
Gruß
Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:25.03.03 20:07 IP: gespeichert
|
|
Zitat | es wird keine Extratabelle geben, da dieses Problem auch mit einer Tabelle lösbar ist. Redundanzen sind nicht gut. |
?? Ihr habt gerade Schwierigkeiten, eine Lösung ohne extra Tabelle zu finden, also bitte!
Der Unterschied ist: Entweder eine zusätzliche einfache Query auf eine kleine (40 Einträge) extra Tabelle nur beim Schreiben einer neuen Message, oder eine komplizierte Query auf der ganzen Datenbank jedesmal, wenn jemand sich die 1. Seite anschaut. Aus Effizienzgründen sowie aus Einfachheits- und Lesbarkeitsgründen empfiehlt sich die "redundante" Lösung...
Aber egal, ich bin eh kein Datenbankspezialist, mach wie es Dir am besten scheint.
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:26.03.03 00:33 IP: gespeichert
|
|
es ist unser oberstes Ziel die Queryzahl minimal zu halten, da wir mit Riesenmengen an Zugriffen rechnen müssen. Deshalb versuchen wir so sowenig wie möglich, so viel wie möglich herauszuholen.
Eine richtige Select-Anfrage kann das lösen, wenn man den Group by Befehl richtig beherrschen würde. Das ist bei mir noch nicht der Fall...
Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
KG-Träger


Beiträge: 296
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:26.03.03 05:09 IP: gespeichert
|
|
Hi Johni,
Zitat | wenn Du möchtest, gebe ich Dir einen Zugang zu meinem phpMyAdmin. Dann kannst Du die Frage direkt am Beispieldatensatz testen. |
ja, gerne. Ich hab zwar mit phpMyAdmin noch nicht wirklich gearbeitet, aber wenn man die MySQL-Shell kennt dürfte das sicher kein Problem sein.
Viele Grüße JustSeeDontTouch
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:26.03.03 18:39 IP: gespeichert
|
|
ich integriere das gerne in die nächste Version, jedoch konnte ich Deiner Erklärung nicht folgen. Mach mir mal ein Beispiel-Query dafür.
@JustSeeDontTouch Group by ist sicherlich der richtige Ansatz. Die Anfrage ist allerdings weit komplexer und die Lösung bisher noch nicht gefunden.
Wir haben eine Nachrichten_tabelle mit einer nachrichtenID als Schlüssel. In jeder Nachricht steht die ThemenID, die sagt, zu welchem Thema die Nachricht gehört. In der Thementabelle stehen Infos wie Name des Themas etc.
SELECT nachrichten_table.ThreadID, nachrichten_table.PostSubject, nachrichten_table.PostTime, thread_table.ThreadName, user_table.uName, thread_table.BoardID FROM nachrichten_table LEFT JOIN user_table ON (nachrichten_table.nUserID = user_table.UserID AND user_table.ForumID=1) LEFT JOIN thread_table ON (nachrichten_table.ThreadID = thread_table.ThreadID AND thread_table.ForumID=nachrichten_table.ForumID) WHERE nachrichten_table.ForumID = 1 ORDER BY nachrichten_table.PostTime DESC LIMIT 40
Es ist mir noch nicht gelungen, der Datenbank zu erklären, dass es nur einmalige nachrichten_table.ThreadID zu verwenden hat.
Ich nehme gerne Deine Hilfe an.
Gruß
Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:26.03.03 21:29 IP: gespeichert
|
|
Zitat | es ist unser oberstes Ziel die Queryzahl minimal zu halten |
!! Dann ist es viel besser, eine Query nur beim Einfügen einer neuen Nachricht auszulösen, anstatt jedesmal, wenn jemand sich die Hauptseite anschaut! Nicht?
Ansonsten, über GROUP_BY: Ich habe damals ein bißchen mit Delphi herumgespielt, und ich glaube, mich zu erinnern, daß es Konflikte zwischen GROUP_BY und ORDER_BY geben kann, nämlich hier: Wenn Du by ThreadName groupst, enthält jede Gruppe mehrere Einträge, die unterschiedliche PostTimes haben, so daß Du nicht mehr by PostTime ordern kannst; Umgekehrt, wenn Du by PostTime orderst, sind die einträge in einer Reihenfolge, wo die ThreadNames bunt gemischt sind, so daß Du nicht mehr by ThreadName groupieren kannst... So eine Idee. Ich bin mir nicht mehr ganz sicher, aber das Problem habe ich schon irgendwann mal gehabt. SQL ist nicht sooo gelenkig... (Diese Nachricht wurde am 26.03.03 um 21:29 von J_Oxtrap geändert.)
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:26.03.03 21:30 IP: gespeichert
|
|
deswegen muss man die anderen Spalten gesondert groupieren z.b. mit min(), max(), avg() oder sum().
Doch das geht irgendwie auch nicht. Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
KG-Träger


Beiträge: 296
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:27.03.03 05:48 IP: gespeichert
|
|
Hi J_Oxtrap,
Zitat | !! Dann ist es viel besser, eine Query nur beim Einfügen einer neuen Nachricht auszulösen, anstatt jedesmal, wenn jemand sich die Hauptseite anschaut! Nicht? |
ja da hast Du Recht.
Zitat | Ansonsten, über GROUP_BY: Ich habe damals ein bißchen mit Delphi herumgespielt, |
Was hat Delphi mit SQL zu tun
Viele Grüße JustSeeDontTouch
|
|
Johni |
 |
Spenden-Zentrale
   
 Forum-Unterstützer
Beiträge: 5990
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:27.03.03 05:51 IP: gespeichert
|
|
>>!! Dann ist es viel besser, eine Query nur beim Einfügen einer neuen Nachricht auszulösen, anstatt jedesmal, wenn jemand sich die Hauptseite anschaut! Nicht?
wir haben hier eine andere Lösung vorgesehen. Es werden komplette Module als HTML-Version gecacht. Doch das Teil ist noch nicht fertig. Johni
-----
Dieses Forum braucht mehr als Luft und Liebe.
Dieses Forum braucht Geld. Haltet das Forum am Leben und spendet.
Spenden geht schnell und direkt. Nutzt einfach PayPal und schickt das Geld an [email protected].
Auch Überweisungen ist möglich, bitte Kontakt mit mir aufnehmen.
Jede Zuwendung ist für einen guten Zweck.
Vergesst Euer Forum nicht. Was nicht bezahlt werden kann, muss geschlossen werden.
Es ist schließlich auch Euer Vergnügen!
|
|
Einsteiger
 Nie Sex = ständig Sex
Beiträge: 293
Geschlecht: User ist offline
|
Re: Neueste Beiträge: Nur 1 pro Thread anzeigen
|
Datum:27.03.03 14:02 IP: gespeichert
|
|
Zitat | Was hat Delphi mit SQL zu tun? |
Bei Delphi gab es gute und einfache Datenbankanbindungsobjekte, die sanft einen sich mit SQL konfrontieren ließen.
Zitat | Es werden komplette Module als HTML-Version gecacht. |
OK, meine Idee war eigentlich nichts anderes, als die Info in einer extra Tabelle zu cachen, und diese dann bei jeder Änderung zu verwalten, anstatt ein cached/uncached Status bei jeder Änderung zu verwalten. Aber so weit weg voneinander waren wir doch nicht.
Ich melde mich wieder, sobald ich ein bißchen mit PHP herumgespielt habe, aber es dauert noch einige Wochen (ich ziehe im Mai von Südfrankreich nach Berlin um, sowas frißt Zeit).
|
|