Penso che dovresti archiviarlo come un po '(se ti preoccupi delle dimensioni di archiviazione) e lascia NULL
significa "sconosciuto".
field bit(1) default NULL,
Sembra strano dichiarare un campo not null
E poi avere un valore speciale che, essenzialmente, significa NULL
.
MODIFICARE:
La sintassi seguente "funziona" su Violino SQL:
create table t (
val int,
flag tinyint(1) default -1
);
"Works" è tra virgolette perché il valore predefinito stampano come "1" anziché "-1"-dopo tutto, il (1)
sta dicendo solo stampare una cifra.
Forse in alcune versioni precedenti di MySQL genera un errore quando lo vede -1
non verrà visualizzato correttamente. (Ad essere sincero, questo mi sorprenderebbe.)