2010-09-09 9 views
6

Sto usando la tabella MySQL qui sotto. Vorrei aggiungere un campo chiamato 'subcheck' che sarà un valore sì/no determinato dall'input del modulo HTML TYPE = CHECKBOX. Quale "tipo" dovrei dare a questo nuovo campo?Quale campo MySQL dovrei usare per un valore Sì/No Checkbox?

Grazie in anticipo,

John

`submission` (
    `submissionid` int(11) unsigned NOT NULL auto_increment, 
    `loginid` int(11) NOT NULL, 
    `title` varchar(1000) NOT NULL, 
    `slug` varchar(1000) NOT NULL, 
    `url` varchar(1000) NOT NULL, 
    `displayurl` varchar(1000) NOT NULL, 
    `datesubmitted` timestamp NOT NULL default CURRENT_TIMESTAMP, 
    PRIMARY KEY (`submissionid`) 
) 

risposta

14

È possibile utilizzare un TINYINT(1) (BOOL/BOOLEAN è solo un alias per TINYINT(1)).

Un'altra opzione è quella di memorizzare Y/N in un CHAR(1).

Vorrei raccomandare TINYINT(1) in quanto ti darebbe le migliori opzioni di portabilità.

2

un valore booleano - 1 per Sì, 0 per no.

(il valore della casella di controllo dovrà essere 1 o 0 ovviamente).

Molto più portatile di sì/no imo. efficiente anche

0

Vorrei raccomandare uno TINYINT(1) per questo scopo. Memorizza o 1 o 0, per indicare sì o no. Ci vuole pochissimo spazio ed è meglio supportato su diversi motori SQL rispetto ai tipi regolari di bool.

1

userei numeric(1) not null default 0 cui 0 indica false e 1 indica true.

2

Personalmente preferisco un enum o impostare il tipo di dati in MySQL per questo. Mantiene i dati leggibili.