Как добавить логическое поле в MySQL?
Кажется, я должен использовать tinyint(); но я не знаю, как его реализовать?
Вопрос в том, какова ваша рекомендация, если мне нужно иметь логическое поле в БД MySQL и изменить его значение с помощью PHP
Ответы
Ответ 1
Yep, TINYINT(1)
- это путь... вы также можете использовать BOOL
или BOOLEAN
, которые являются синонимами ( поэтому это не имеет значения).
0
оценивается как false
в PHP и 1
до true
(на самом деле любое другое число, чем 0
, оценивается как true
, но обычно используется 1
).
Ответ 2
Я предпочитаю ни один из bool, BIT, TINYINT (1). потому что ни один из них на самом деле не логичен. Вы можете проверить следующую ссылку: "почему":
http://dev.mysql.com/doc/refman/5.0/en/numeric-type-overview.html
Я бы лучше использовал: ENUM ('false', 'true') не null - как тип данных. Вы можете передать "true" или "false" (как строки) из PHP. И это займет всего 1 байт, чтобы сохранить его!
Ответ 3
Вы правы, что общее решение tinyint(1)
. Вы можете использовать BOOL для краткости:
CREATE TABLE example (
flag BOOL
);
Ответ 4
у вас есть опция tinyint (1) или бит
введите 0 или 1 в это поле
см. этот пост разницы:
Tinyint vs Bit
Ответ 5
Я думаю, так как вы на самом деле хотите применить логическое (0,1) ограничение в поле таблицы mysql, лучший снимок - uning enum
CREATE TABLE table_name(
boolean_field_name ENUM('0', '1')
);