Это зависит от используемой вами базы данных и поддерживаемых типов данных.Если бы он имел встроенный тип для Boolean
значений, я бы использовал это, в противном случае я бы использовал char(1)
с check constraint
, который проверяет допустимые значения (0
/ 1
или n
/y
) потому что он работает быстрее любого другого типа и выполняет свою работу.
В случае, если у вас есть несколько логических флагов (которые связаны, но не нужны) и вам не нужна поддержка NULL (который является третьим состоянием) для каждого флага, я бы пошел для столбца numeric
с битовыми флагами, если ваша база данных поддерживает это (1=true
и 0=false
, бит один для флага один, бит два для второго флага ии так далее.
Mysql имеет очень хорошую поддержку битовых операций, см. здесь .