Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   [MySQL] Problem mit COUNT (https://www.delphipraxis.net/64291-%5Bmysql%5D-problem-mit-count.html)

JocalAreaNetwork 1. Mär 2006 21:20

Re: [MySQL] Problem mit COUNT
 
Zitat:

Zitat von mkinzler
Um Redundanzen zu vermeiden sollte auf das Feld Fleet in der Benutzerdatenbank verzichtet werden und die Anzahl bei Bedarf mit
SQL-Code:
mit SELECT ownerid, count(ship_id) FROM ships GROUP BY ownerid
ermittelt werden.

Das ist natürlich korrekt, aber nicht immer ist die sauberste Lösung auch die sinnvollste - wenn es darum geht z. Bsp ein Onlinegame zu schreiben, dann würde ich stark dazu raten die Daten zu cachen, wie oben schon vorgeschlagen. Natürlich muss dann immer darauf reagiert werden, wenn sich die Schiffsanzahl ändert, aber alles andere kann unter Umständen sehr langsam werden, vor allem, da dies ja nur einer von potentiell sehr vielen Fällen ist.

Grüße
JocalAreaNetwork

3_of_8 1. Mär 2006 22:16

Re: [MySQL] Problem mit COUNT
 
Jaa, genau. Ein Onlinegame solls werden. As said, ich machs jetzt auf die alcaeus-Art.

Sharky 2. Mär 2006 05:20

Re: [MySQL] Problem mit COUNT
 
Zitat:

Zitat von 3_of_8
... jedem User den Wert des Feldes fleet eines Users auf die Anzahl der Schiffe setzen, die dem User gehören ...

Hai 3_of_8,

ich frage mal anders herum. Du müsstest doch eigentlich wissen welche Anzahl von Schiffen ein User hat. An irgendeinem Punkt in deinem Code musst Du doch sicher ein neues Schiff in die Tabelle eintragen? Warum nicht an dieser Stelle ein UPDATE in dem Du in der Usertabelle die Anzahl der Schiffe des Users um eins erhöhst?
Pseudo-Code
Code:
insert_schip (userid);
begin
  INSERT INTO ships ('ownerid') VALUES (userid);
  UPDATE users SET flett = fleet + 1 WHERE userid = :userid;
end;
Analog dazu das ganze noch beim löschen und fertig.

3_of_8 2. Mär 2006 09:50

Re: [MySQL] Problem mit COUNT
 
Joa, das wäre natürlich auch eine Möglichkeit.


Alle Zeitangaben in WEZ +1. Es ist jetzt 21:10 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz