Angenommen, ich habe eine Datenbanktabelle mit dem Namen "Scrape", die möglicherweise wie folgt eingerichtet ist:
UserID (int)
UserName (varchar)
Wins (int)
Losses (int)
ScrapeDate (datetime)
Ich versuche, meine Benutzer anhand ihres Gewinn-/Verlustverhältnisses in eine Rangfolge zu bringen. Ich werde jedoch jede Woche neue Daten über die Benutzer abfragen und einen weiteren Eintrag in der Scrape-Tabelle vornehmen.
Wie kann ich eine nach Gewinnen/Verlusten sortierte Liste von Benutzern abfragen, wobei jedoch nur der jüngste Eintrag (ScrapeDate) berücksichtigt wird?
Glauben Sie auch, dass es eine Rolle spielt, dass Leute auf die Website zugreifen werden und der Scrape möglicherweise mitten in der Fertigstellung ist?
Das könnte ich zum Beispiel haben:
1 - Bob - Wins: 320 - Losses: 110 - ScrapeDate: 7/8/09
1 - Bob - Wins: 360 - Losses: 122 - ScrapeDate: 7/17/09
2 - Frank - Wins: 115 - Losses: 20 - ScrapeDate: 7/8/09
Dabei handelt es sich um einen Scrape, der bisher nur Bob aktualisiert hat und gerade dabei ist, Frank zu aktualisieren, aber noch nicht eingefügt wurde. Wie würden Sie auch diese Situation handhaben?
Meine Frage ist also:
- Wie würden Sie vorgehen, wenn Sie nur den letzten Scrape jedes Nutzers abfragen, um die Rangfolge zu bestimmen?
- Glauben Sie, dass es eine Rolle spielt, dass die Datenbank gerade aktualisiert wird (vor allem, wenn ein Scrape bis zu einem Tag dauern kann) und noch nicht alle Nutzer vollständig aktualisiert haben? Wenn ja, wie würden Sie das handhaben?
Ich danke Ihnen für die Antworten, die Sie mir auf meine Frage gegeben haben: