Jeg har planer om (for sjov) at lave et online HTML-spil i PHP/MySQL. (for
interesserede: I stil med
www.heroes.dk ).
Jeg kan basal SQL (insert, select, update, delete) fra
quick-start-tutorials, men heller ikke stort mere.
Jeg har brug for at lave opdateringer af en række tabeller ud fra den
aktuelle værdi af bestemte tabeller og/eller tabellen selv (feedback), og
jeg skal være sikker på at være færdig før der kommer ændringer - fordi alle
ændringer afhænger af gamle værdier (formodentlig beregnet i PHP).
Algoritmen bag spillet bliver stort set at enhver værdi opdateres inden den
læses, dvs. rigtigt mange updates (altså ikke typisk SQL-brug).
Hvis jeg f.eks. "angriber en anden spiller" tjekkes først om jeg kan angribe
ud fra min og modstanderens byer (af flere mulige byer pr. spiller, dvs. de
skal i en selvstændig tabel), hvis "ja" påvirker det mig som spiller, den by
jeg angriber med, den spiller jeg angriber og den by jeg angriber.
Hvis en anden angriber den samme samtidig er der race conditions (vi kan slå
de samme soldater ihjel 2 gange og/eller erobre den samme by!) hvis der ikke
laves noget tjek.
Jeg har surfet lidt rundt i MySQL-manualen, men er ikke helt sikker på
hvordan jeg gør:
Er "lock tables" den eneste/smarteste måde at undgå racekonditions på, hvis
man skal udføre operationer på flere tabeller?
Hvis det er et FAQ, er der så evt. en tutorial (URL) eller lign.?
På forhånd tak! :)
--
Mvh. Mogens
Bach.scient. i datalogi. Søger IT-job på Fyn!
www.momech.dk