Ho ancora delle domande sull'SQL... Uso MySQL, ma sono domande generiche, valide per qualunque database...
Mi spiego con un esempio per semplificare...
Un utente inserito nel mio database dovrebbe poter avere un numero indefinito (da 0 a 1000 ad esempio) di caratteristiche tutte dello stesso tipo...
Con un linguaggio di programmazione userei senza dubbio un array con dimensione variabile, ma per memorizzarle in un database non so come comportarmi...
Imparai tanto tempo fa che il modo piu' elegante sarebbe creare una tabella apposita con soli due campi: l'userid e un campo per questo valore, quindi se un utente deve avere cento valori diversi aggiungero' cento righe a questa tabella con lo stesso uid... Poi, qunado leggo i dati di ogni utente dal database degli utenti, per ognuno che trovo vado a cercare nell'altra tabella se ci sono righe con l'id corrispondente e in tal caso le carico...
Adesso pero' mi chiedo se questo metodo sia proprio il migliore![]()
Oppure e' meglio (parlo in termini di risparmio delle risorse) mettere nella tabella degli utenti un nuovo campo di tipo testo, dove vado a memorizzare tutte le caratteristiche separandole con un carattere speciale, e poi una volta letta la stringa splittarla?
Devo far girare la mia applicazioncina su un 386 con 128mb di memoria o poco meno... E spero di avere tanti utenti... Quindi voglio limitare al massimo lo spreco inutile di risorse per non essere costretto ad aggiornare la macchina...
![]()