I file di testo usati al posto dei database vanno molto di moda su questo forum, ma sono una pessima idea. Il problema principale e' garantire la coerenza dei dati, e se non implementi correttamente un sistema di locking non c'e' modo di farlo. Inoltre, anche implementando il locking, il tutto e' scomodo, lento e macchinoso.
Ti faccio un esempio. Supponiamo di avere un guestbook in cui ogni utente puo' scrivere un messaggio, il file di testo non conterra' altro che una serie di righe ognuna delle quali e' il messaggio di un utente.
Ora, l'utente1 si collega e inserisce il commento: il sistema legge il file di testo, aggiunge la riga e lo salva. Nel frattempo utente2 si collega nel momento che passa tra la lettura e la scrittura di utente1, inserisce il proprio messaggio e il sistema lo salva dopo che utente1 ha salvato il proprio. Cosa succede? Succede che utente2 ha letto lo stesso contenuto che ha letto utente1 e quando utente2 salvera' il suo commento, quello di utente1 sara' perso per sempre.
codice:
Contenuto del file di testo all'inizio:
1: mi piace molto!
2: non mi piacciono i colori
3: saluti da mario
utente1 legge
|
| utente2 legge
| |
utente 1 salva (ciao) |
| |
| utente 2 salva (bel sito!)
| |
Contenuto del file di testo PRIMA che utente2 salvi
1: mi piace molto!
2: non mi piacciono i colori
3: saluti da mario
4: ciao
Contenuto del file di testo alla fine
1: mi piace molto!
2: non mi piacciono i colori
3: saluti da mario
4: bel sito!
il commento "ciao" si e' perso nel nulla perche' sovrascritto.
Per questo si usano i database.