se i valori di cui hai bisogno sono solamnte true o false puoi usare un intero per memorizzare queste informazioni senza scomodare una stringa o una tabella.
esempio:
poniamo che hai un'area privata e l'utente in relazione ai diritti può accedere o meno alle varie zone.
zona 1
zona 2
zona 3
usando un intero per gestire questa cosa hai a disposizione 32 "variabili"
0000 0000
0000 0000
0000 0000
0000 0000
uno schema di questo genere vieta l'accesso a qualsiasi area.
se devi attivare l'accesso alla zona 2 valorizzerai a 1 il bit 2 quindi
0100 0000
0000 0000
0000 0000
0000 0000
riconverti il binario in intero e lo memorizzi
per leggerlo ovviamente dovrai convertire l'intero in binario.
per fare questo avrai sprecato lo spazio di 4 byte e basta.
se scegli la soluzione di una tabella avrai la necessità di memorizzare come minimo i 4 byte per l'intero di riferimento all'id utente e come minimo 1 byte per la memorizzazione del valore, questo unito allo spazio necessario per la memorizzaione della struttura della tabella (mysql memorizza in un file diverso ogni tabella).
ovviamente non farti vincere dalla pigrizia e memorizzare quindi una stringa di 32 caratteri perchè la stringa è parecchio più dispendiosa di un integer in termini di spazio ed anche come routine di gestione è più esosa dei numeri e bit.
buon divertimento, questa è una bella "sfida" se la raccogli bene per risparmiare risorse all'osso.
per maggior info puoi andare sul sito di mysql e guardare i vari tipi di dati e scegliere quello che calza meglio alle tue esigenze.

Rispondi quotando