Antworten: 53
|
|
hajo VIP - Poster Herkunft: Barsbüttel Beiträge: 9411 |
# Antwort: 21 - 02.06.2009 um 14:53 Uhr
meine antwort nr 12 gefällt mir noch immer am besten ------------------ ClanSphere - professional clan care starts here |
Inaktiv |
|
duRiel Weltmeister Herkunft: Cambridge Beiträge: 7300 |
# Antwort: 22 - 02.06.2009 um 14:56 Uhr
:p ok dann nehm ich den mal auseinander das bringt nur was, wenn derjenige, der eine falsche anzahl von posts hat, danach nochmal postet. wenn du irgendwem nun eine riesen anzahl posts in der db gibst und der danach nicht mehr schreibt bleibt das so ohne einen link wie von gahero vorgeschlagen. denke mal beides zusammen ergibt ein gutes konzept. |
Inaktiv |
|
GaHero Poststar Beiträge: 733 |
# Antwort: 23 - 02.06.2009 um 14:56 Uhr
Joah klar, genau das meinte VooDooAlex glaub ich auch..., oder nicht? Die Lösung wurde halt mehrfach gepostet, ist ein wenig durcheinander! Zuletzt editiert von GaHero am 02.06.2009 um 14:57 Uhr (1x Editiert) |
Inaktiv |
|
hajo VIP - Poster Herkunft: Barsbüttel Beiträge: 9411 |
# Antwort: 24 - 02.06.2009 um 15:12 Uhr
wer gibt sich mehr punkte um danach nicht mehr zu posten? find die wahrscheinlichkeit ist sehr gering, aber ok macht dann wegen mir noch ne foren unterseite um das zu korrigieren global ------------------ ClanSphere - professional clan care starts here |
Inaktiv |
|
VooDooAlex Thread-Ersteller Poststar Herkunft: Coburg Beiträge: 691 |
# Antwort: 25 - 02.06.2009 um 16:20 Uhr
Ich denke das was hajo meint ist das was ich meine Gruß Alex ------------------ |
Inaktiv |
|
duRiel Weltmeister Herkunft: Cambridge Beiträge: 7300 |
# Antwort: 26 - 02.06.2009 um 17:16 Uhr
nein, das passiert doch anders herum. der admin löscht beiträge, vielleicht weil sie zu alt sind und der inhalt deshalb nicht mehr stimmt. vielleicht räumt er das halbe forum leer. ein user, der früher aktiv war, hatte 1000 beiträge und ist dann inaktiv gegangen. nun werden in der datenbank alle beiträge aus "seiner zeit" gelöscht. der nutzer hat immernoch 1000 beiträge, obwohl kein einziger zu finden ist. |
Inaktiv |
|
GaHero Poststar Beiträge: 733 |
# Antwort: 27 - 02.06.2009 um 17:18 Uhr
Kann man das dann nicht wie vorgeschlagen dann einfach so machen, beim Löschen einafch den Zähler runter zusetzen? Wenn jmd per Hand in der DB was löscht ist er quasi selber Schuld, dass der Zähler nicht mehr stimmt. Dafür sind ja etxra Löschfunktionen enthalten! |
Inaktiv |
|
VooDooAlex Thread-Ersteller Poststar Herkunft: Coburg Beiträge: 691 |
# Antwort: 28 - 02.06.2009 um 17:46 Uhr
02.06.2009 um 17:16 Uhr - duRiel: nein, das passiert doch anders herum. der admin löscht beiträge, vielleicht weil sie zu alt sind und der inhalt deshalb nicht mehr stimmt. vielleicht räumt er das halbe forum leer. ein user, der früher aktiv war, hatte 1000 beiträge und ist dann inaktiv gegangen. nun werden in der datenbank alle beiträge aus "seiner zeit" gelöscht. der nutzer hat immernoch 1000 beiträge, obwohl kein einziger zu finden ist. Wenn ein oder mehrere Beiträge durch einen Admin gelöscht werden, kann doch abgefragt werden. Dem entsprechend können diese Beiträge von dem betroffenen User abgezogen werden. Und wer in der Datenbank löscht ist wirklich selber Schuld. Gruß Alex ------------------ Zuletzt editiert von VooDooAlex am 02.06.2009 um 17:48 Uhr (1x Editiert) |
Inaktiv |
|
duRiel Weltmeister Herkunft: Cambridge Beiträge: 7300 |
# Antwort: 29 - 02.06.2009 um 19:00 Uhr
wie soll denn clansphere merken, ob in der datenbank gelöscht wurde? und .. ich lösche oft in der datenbank und das hat seinen grund! nochmal beispiel von eben, ich will alle posts, die über 2 jahre alt sind, löschen. soll ich nun in jedes meiner foren gehen und die alten threads einzeln löschen, wo es ein einziger befehl in der db direkt übernimmt? |
Inaktiv |
|
GaHero Poststar Beiträge: 733 |
# Antwort: 30 - 02.06.2009 um 19:10 Uhr
Ja gut, wenn ich aber das mache, weiß ich normalerweise auch, dass es dann einen Link im Adminmenü gibt, der die Berechnung neu ausführt. Das passt doch dann alles! |
Inaktiv |
|
hajo VIP - Poster Herkunft: Barsbüttel Beiträge: 9411 |
# Antwort: 31 - 02.06.2009 um 19:17 Uhr
basteln wir sonst einfach ondelete trigger ein ------------------ ClanSphere - professional clan care starts here |
Inaktiv |
|
VooDooAlex Thread-Ersteller Poststar Herkunft: Coburg Beiträge: 691 |
# Antwort: 32 - 02.06.2009 um 20:00 Uhr
02.06.2009 um 19:00 Uhr - duRiel: wie soll denn clansphere merken, ob in der datenbank gelöscht wurde? und .. ich lösche oft in der datenbank und das hat seinen grund! nochmal beispiel von eben, ich will alle posts, die über 2 jahre alt sind, löschen. soll ich nun in jedes meiner foren gehen und die alten threads einzeln löschen, wo es ein einziger befehl in der db direkt übernimmt? Wenn Du es so machst wie Du das hier beschreibst, wäre es sogar besser, wenn die Counts der alten Posts bestehen bleiben. Wenn ich in einem Forum bin, möchte ich ja sehen wieviele Beiträge die User schon geschrieben haben, also wie aktiv sie sind. Wenn jetzt veraltete Beiträge gelöscht werden, löscht man ja auch die Anzhal der geschrieben Beiträge was ja nicht korrekt ist. Ich würde mich da betrogen fühlen. Gruß Alex ------------------ |
Inaktiv |
|
duRiel Weltmeister Herkunft: Cambridge Beiträge: 7300 |
# Antwort: 33 - 02.06.2009 um 20:03 Uhr
ne, die anzahl der beiträge sollte immer der tatsächlichen anzahl der datensätze in der db entsprechen. möchte man, dass die posts erhalten bleiben, soll man sie verschieben oder verstecken oder sonstwas. aber wenn ein beitrag entfernt wird, hat der user einen post weniger, und das ist richtig so. |
Inaktiv |
|
VooDooAlex Thread-Ersteller Poststar Herkunft: Coburg Beiträge: 691 |
# Antwort: 34 - 02.06.2009 um 21:25 Uhr
Sehe ich nicht so. So wie Du das schilderst, würde es ja bedeuten, dass wenn z.B. ihr hier im Forum alle Beiträge vom letzten Jahr löschen würdet und ich angenommen im letzten Jahr 300 Posts und in diesem Jahr 164 Posts gemacht hätte, ich plötzlich auf einen Schlag nur noch 164 Beiträge hätte und das ist falsch. Ich bin der Meinung ein Beitragszähler ist dafür da, um zu sehen wieviel Aktivität in einem Forum geleistet wird, was ich so nicht mehr sehen könnte. Gruß Alex ------------------ |
Inaktiv |
|
GaHero Poststar Beiträge: 733 |
# Antwort: 35 - 02.06.2009 um 21:33 Uhr
Ja dann müssen wir uns halt entscheiden, was wir anzeigen wollen. geschriebene Beiträge eines Users, vorhandene Beiträge eines Users oder vllt soagr beides parallel! |
Inaktiv |
|
Gringo00 Beginner Beiträge: 19 |
# Antwort: 36 - 02.06.2009 um 21:48 Uhr
Ich versteh nur noch immer nicht, warum das so lange dauert momentan? Ich hab ~4000 Beiträge bei 18 Nutzern. Führe ich ein SELECT users_id, count(users_id) FROM cs_comments WHERE comments_mod="board" GROUP BY users_id; aus, dann dauert das 0.0138 sek. Gleiches für die Threads, addieren, sortieren - wie kann das sieben Sekunden brauchen? |
Inaktiv |
|
hajo VIP - Poster Herkunft: Barsbüttel Beiträge: 9411 |
# Antwort: 37 - 02.06.2009 um 22:02 Uhr
die threads kommen z.b. noch hinzu ------------------ ClanSphere - professional clan care starts here |
Inaktiv |
|
Gringo00 Beginner Beiträge: 19 |
# Antwort: 38 - 02.06.2009 um 22:30 Uhr
Die von der Tendenz her aber noch weniger Zeit brauchen, weil man ja üblicherweise weniger Threads als Comments hat. SQL ist bei mir gute sechs Jahre her, aber die Left Joins werden wohl die Performanzkiller sein. Vielleicht könnte man ja testen, ob mehrere einfachere Abfragen, die man dann via PHP zusammensetzt, das Ergebnis nicht schneller liefern können. |
Inaktiv |
|
VooDooAlex Thread-Ersteller Poststar Herkunft: Coburg Beiträge: 691 |
# Antwort: 39 - 02.06.2009 um 22:45 Uhr
Wenn ich das einfüge: $tables = 'users usr LEFT JOIN {pre}_comments cms ON cms.users_id = usr.users_id LEFT JOIN {pre}_threads thr ON thr.users_id = usr.users_id GROUP BY usr.users_id'; braucht die Rechenzeit statt ca.90sec. nur noch 20sec. Was ist da anders? Das ergebnis ist das gleiche zumindest von den Zahlen her. Gruß Alex ------------------ |
Inaktiv |
|
duRiel Weltmeister Herkunft: Cambridge Beiträge: 7300 |
# Antwort: 40 - 02.06.2009 um 22:50 Uhr
na in einem select alle threads zu zählen, alle comments zu zählen, die beiden sachen zu addieren und dann vor allem danach noch zu sortieren ist sehr aufwendig. bei einem gewöhnlichen select wird einfach nach einer zahl sortiert, die obersten einträge genommen und dann deren felder ausgelesen. hier geht das aber nicht, weil nach diesem addierten count befehl sortiert wird und ohne das zählen nicht gewusst werden kann, wer oben auf der liste ist. ich bin auch kein sql profi, aber es würde mich nicht wundern, wenn mysql dafür intern erst jeden einzelnen besucher durchgehen und dessen threads und comments zählen und addieren würde um dann danach sortieren zu können. und VooDooAlex, die anzeige für "beiträge" liefert nunmal die anzahl der beiträge und so wird es bleiben. ich möchte da keine bezugslosen zahlen haben. worauf jemand durch die anzahl der beiträge schließt ist nicht im ermessen der anzeige. |
Inaktiv |
|
Antworten: 53
|
Sie müssen sich registrieren, um zu antworten. |