Restriktive Foren
Das Forum für Keuschheitsgürtel, Fetisch & Bondage

HomeRegistrierenHilfeLogout
Willkommen Gast

Live Diskutieren in unseren KGforum-Chatraum(Rocketchat)
  Restriktive Foren
  General-Board (Moderatoren: Johni, Staff-Member)
  Neueste Beiträge: Nur 1 pro Thread anzeigen
Thema löschen Druckversion des Themas
Antwort schreiben Bei Antworten benachrichtigen
 Autor Eintrag
J_Oxtrap
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 Moderator melden


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...
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:24.03.03 01:15 IP: gespeichert Moderator melden


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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:24.03.03 17:52 IP: gespeichert Moderator melden


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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
JustSeeDontTouch
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 Moderator melden


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
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
J_Oxtrap
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 Moderator melden


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!
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
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:16 IP: gespeichert Moderator melden


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
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
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 Moderator melden


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
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
J_Oxtrap
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 Moderator melden


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.
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:25.03.03 19:43 IP: gespeichert Moderator melden


@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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
J_Oxtrap
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 Moderator melden


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.
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:26.03.03 00:33 IP: gespeichert Moderator melden


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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
JustSeeDontTouch
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 Moderator melden


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
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:26.03.03 18:39 IP: gespeichert Moderator melden


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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
J_Oxtrap
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 Moderator melden


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.)
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:26.03.03 21:30 IP: gespeichert Moderator melden


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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
JustSeeDontTouch
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 Moderator melden


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
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Johni Volljährigkeit geprüft
Spenden-Zentrale



Forum-Unterstützer

Beiträge: 5987

Geschlecht:
User ist offline
0  0  
  Re: Neueste Beiträge: Nur 1 pro Thread anzeigen Datum:27.03.03 05:51 IP: gespeichert Moderator melden


>>!! 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!

E-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
J_Oxtrap
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 Moderator melden


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).
Homepage besuchenE-MailProfil anzeigenNachricht senden Nachricht kopieren Nachricht zitieren Nachricht �ndern Nachricht l�schen
Antworten Bei Antworten benachrichtigen
Jumpmenü
Google
Suche auf dieser Seite !!


Wir unterstützen diese Aktion

Impressum v 1.2
© all rights reserved, 2024

Status: Sessionregister
Der Aufruf erzeugte 23 locale und 1 zentrale Queries.
Ladezeit 0.03 sec davon SQL: 0.01 sec.