Originariamente inviato da LucianoS
ok, ho visto la tabella.

Premesso che userò solo dati unisgned, cioè senza segno + o - che precede il numero.

Mi serve per i classici id utente, id prodotti ecc. puoi vedere per cortesia come procedo?

1. per gli ID utenti, tinyint1 (al posto di int4) sapendo gà che non ci saranno più di 255 record
2. per gli ID dei prodotti, smallint2 (al posto di int8) che arriva fino a 65mila
3. se so già che un valore avrà sempre 10 cifre fisse (es. unixtime) posso usare int10?
4. da phpmyadmin, scegliendo Tinyint, mi lascia la possibilità di digitare anche la lunghezza: se metto 2 raddoppio gli iniziali 255 e così via?
5. il numero tra le tonde si riferisce al numero delle cifre da visualizzare.. ma visualizzare dove?
6. lo stesso discorso vale anche per char e varchar? nella stessa tabella ho entrambi i campi.
1. Ok.
2. Ok.
3. Ok.
4.5. Non raddoppi nulla. Tinyint e' lungo un byte, percio' sono 8 bit. Si tratta solo della visualizzazione delle cifre 0 da anteporre quando si usa zerofill. Stesso discorso di prima con INT. Le cifre sono tagliate solo se eccedono la lunghezza prefissata dal tipo di campo numerico scelto e non dalla lunghezza indicata nella dichiarazione del tipo di campo.

1 -> tinyint(1) unsigned zerofill = 1
1 -> tinyint(2) unsigned zerofill = 01
1 -> tinyint(3) unsigned zerofill = 001

6. char e' un campo di lunghezza prefissata dal valore tra parentesi. E' statico.
varchar e' un campo di lunghezza max prefissata ma dinamico come occupazione.
statico = lunghezza del campo assegnata sempre tutta impegnata.
dinamico = occupa solo lo stretto spazio necessario alla stringa + un indice di lunghezza.