#9  
Alt 07.02.2012, 20:10
Benutzerbild von dbdtDev
5-fach Premium-User 5-fach Premium-User 5-fach Premium-User 5-fach Premium-User 5-fach Premium-User dbdtDev Status: Offline
Administrator
Erstligist
Teamname: Die Übercoolen
Platzierung: 10
S|U|N: 1|2|5
Rangliste: 1834
Registriert seit: 01.02.2010
Beiträge: 3.273

Awards-Schaukasten

Standard

Hi,

ich habe das Problem vor kurzem schonmal erklärt, aber hier nochmal : beim Training wird in zwei verschiedene Tabellen in der Datenbank gespeichert (redundant, das gleiche Ergebnis). Für manche Dinge wird eine, für andere die zweite Tabelle verwendet. Durch eine Unregelmässigkeit wurde hin und wieder in eine der Tabellen ein doppelter Eintrag gespeichert, was dazu führt dass Steigerungen nicht mehr mit Skills usw. zusammenpassen. Dies betrifft hauptsächlich Teamchefs die ihr Training eher früher als später einstellen.

Nun das Positive: ich habe gerade die Ursache entdeckt, die von anfang an im Code ist, aber erst jetzt Auswirkung zeigt, und das Problem behoben. Bei zukünftigen Trainings wird nichts mehr doppelt gespeichert werden.

Nun müssen noch die doppelten Einträge aus der Tabelle entfernt werden. Dafür werde ich ein Skript schreiben. Leider wird dieses Skript extrem lange brauchen (nicht das Programmieren, sondern das Ausführen), weil die Tabellen so gross sind und in zwei Tabellen verglichen werden muss.
Für Interessierte: eine Tabelle hat ~30 Millionen, die andere ~70 Millionen Datensätze. Wenn in der "fehlerhaften" Tabelle für einen Spieler für ein Training ein doppelter Eintrag gefunden wird, muss erst in der anderen Tabelle geschaut werden, welcher der zwei Einträge entfernt werden muss. Und das muss für alle Spieler, für alle Trainings gemacht werden.


Falls mir in der Zwischenzeit keine geniale Lösung einfällt (und da werde ich auch Kamil um Rat bitten, er kommt oft mit genialen Dingen daher ) kann das Skript, weil es so lange dauern wird, nur zu wenigen Zeitpunkten ausgeführt werden, wahrscheinlich direkt nach einem Training an einem Trainingstag. Ich gebe euch noch bescheid ob es diesen Freitag starten wird oder nicht. Danach werden sich die Änderungen bei den Spielern erst nach dem darauf folgenden Training bemerkbar machen, weil erst dann die Spieler wieder "aktualisiert" werden.


LG,
Thomas
Mit Zitat antworten

 

Lesezeichen



Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.

Gehe zu



Alle Zeitangaben in WEZ +1. Es ist jetzt 07:35 Uhr.

Powered by vBulletin® Version 3.8.4 (Deutsch)
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.