2011-07-07 13 views
8

He leído que el tipo bool en MySQL es un alias de tinyint (1), por lo que debería utilizar tinyintBOOL y tinyint (1) ... ¿sin firmar?

Mi pregunta es la siguiente: Qué necesito para declarar que no firmado, quiero decir, es que necesario?

purchased tinyint(1) unsigned not null DEFAULT 0, 

or 

purchased tinyint(1) not null DEFAULT 0, 
+4

¿Tiene algún problema con el uso de BOOL? –

+2

_ "por lo tanto, debería usar tinyint" _ - ¿Por qué sigue? BOOL está perfectamente bien y (en mi opinión) más expresivo de su intención. 'TINYINT (1)' puede significar "cualquier cosa entre 0 y 9"; 'BOOL' significa específicamente" 0 o 1 "(aunque supongo que podría estar tergiversando sus intenciones :-)). –

Respuesta

10

No es necesario; déjalo firmado. De hecho, no importa de todos modos: 0 y 1 están dentro del rango de valores válidos para TINYINT independientemente de su firma.

Pero, enserio, simplemente declare que es BOOL, deja muy claro que es un valor verdadero o falso.

+1

no tenía idea de que pudiera usar bool en mysql, pensé que bool no era compatible con mysql ... nunca es tarde para aprender ... – Marco

+3

'BOOL' es un sinónimo de' TINYINT (1) '. – MichaelRushton

+0

Algunas versiones pueden no ser compatibles con BOOL, también es bueno usar tinyint porque si necesita usar la consulta en un SQL diferente, ¡es más fácil de convertir! – JDuarteDJ

3

No es necssary para declarar que no firmado, sobre todo si se está usando para almacenar un valor booleano.

Cuestiones relacionadas