View Full Version : [SQL/php] Varchar,...
Salve...
volevo farci un po' di chiarezza anche perché spesso ci metto un VARCHAR(255) o un TEXT tanto per farci stare quello ceh ho bisogno:
mi piacerebbe sapere la differenza fra VARCHAR e CHAR. Ho trovato qualcosa ma in inglese...
Se ho capito bene CHAR ha la lunghezza fissa quindi si utiizzerebbe ad esempio solamente con hash (md5 l'ha di 32, sha1 di 40)?
Per una descrizione di qualcosa (corta...diciamo un 100/150 caratteri) cosa si utilizza?
Un numero di 10 cifre? Io ho sempre utilizzato INT ma vorrei fare "giusto" in modo da velocizzare anche il sito.
Grazie ;)
Nightmare
10-10-2006, 09:30
varchar e varchar2 sono dei surrogati del char, come hai detto bene tu, il char ha dimensione fissa e il varchar dimensione elastica.
Dalla mia piccola esperienza posso dirti che se hai dei codici alfanumerici di grandezza fissa, o nomi, o cognomi o dati che non occupano quantita rilevanti di caratteri è meglio utilizzare il char dimensionandolo di quanto serve.
Questo per non andare incontro a problemi nella lettura/scrittura di quei campi in futuro come mi è successo molte volte per accedere a tabelle in oracle progettate a caxxo, mentre per campo con grandezze molto variabili: ad esempio una tabella di trascodifica errori (codice errore / testo errore) oppure descrizione di qualcosa o meglio un campo "note" che può anche rimanere vuoto, è meglio dimensionarlo come varchar.
Questo l'ho capito durante le mie esperienze lavorative ma cedo la parola a chi ha piu esperienza di me.
ma...
fare un varchar[50] e un char[50] in definitiva cosa cambia? :stordita:
Nightmare
10-10-2006, 10:22
a livello pratico se in un varchar metti la lettera "a" tu vedrai solo "a" mentre se lo metti dentro un char tu vedrai "a " o probabilmente non lo vedi e non te ne accorgi ma in memoria è cosi
a livello pratico se in un varchar metti la lettera "a" tu vedrai solo "a" mentre se lo metti dentro un char tu vedrai "a " o probabilmente non lo vedi e non te ne accorgi ma in memoria è cosi
Ok grazie, ma allora é meglio utilizzare un VARCHAR per nome, cognome,..?
Un char utilizzerebbe campi inutili no?
Nightmare
10-10-2006, 10:47
come ti dicevo sopra spesso ho avuto problemi nelle conversioni dei tipi dalla tipologia del rdbms a quella del linguaggio di programmazione (ultimamente c'erano problemi vari tra i dati ritornati dalle select e l'inserimento di questi nei PIC X del cobol)
Bene grazie :)
...per i CHAR/VARCHAR sono apposto...attendo qualcuno per gli INTEGER :D
Nightmare
10-10-2006, 11:00
cmq ti ripeto che questa è una mia considerazione, io per i campi piccoli preferisco gestirmi i char che posso equiparare alla "classe base del varchar" ma poi ogniuno se li gestisce come melio preferisce
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.