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