Sto scrivendo una webapp per gli scacchi che, per una determinata mossa e un database di giochi, mostra tutte le mosse che seguono da quella mossa. Praticamente ciò che questo sito ha già fatto: link
Il database avrà una tabella di "mosse" che hanno un collegamento alla mossa precedente nella sequenza. La ricerca delle mosse che seguono una determinata mossa (x) può quindi essere eseguita cercando nella tabella qualsiasi "mossa" che ha "previousMove" come x. Questo è abbastanza semplice, ma non riesco a pensare ad un modo efficace per aggiungere alla tabella delle mosse da un dato gioco di scacchi. Il mio algoritmo finora è:
prevMove = null
for move in game.moves:
dbMove = getMoveFromDB(move, prevMove)
if not dbMove
dbMove = createDBMove()
dbMove.prevMove = prevMove
prevMove = dbMove
Per una media di 40 mosse per partita di scacchi, ciò significa che ci sarebbero 40+ letture di database per importare un gioco. È inevitabile o esiste un modo migliore per importare le mosse da un gioco nel database?