2009-11-13 3 views
0

0/1 может быть гибким и в будущем может добавлять такие опции, как «2, 3, 4».Должен ли я использовать 0/1 или True/False boolean?

TINYINT в MySQL занимает больше места, чем boolean?

Лично я использую 0 и 1 для всего.

Вы можете ответить на этот вопрос в контексте обычного программирования (или MySQL, в зависимости от того, что вам нравится).

+0

Контекст MySQL? – 2009-11-13 21:12:18

+4

Подождите, если вы в основном хотите, чтобы 0/1 выступал в качестве логического, какие дополнительные опции могли быть? Файл не найден? http://thedailywtf.com/Articles/What_Is_Truth_0x3f_.aspx – Brandon

ответ

7

Любая хорошая система базы данных, достойная ее соли, преобразует логическое значение в и из чего-то подходящего для базы данных, а использование фактического логического типа делает программирование против него намного приятнее.

1

Boolean более переносится в разных базах данных (например, PostgreSQL). Tinyint более гибкий, может быть обновлен до чего-то вроде Enum-like.

Окончательный выбор должен быть вашим. Но где угодно, кроме SQL, я бы определенно рекомендовал явные булевы/перечисления по «магическим числам» для ясности и безопасности типов.

1

Когда я абсолютно уверен, что мне понадобится true/false для значения, я буду использовать булевский тип в своем коде. В других случаях часто начинать с 0/1 удобно, потому что 0 может действовать как код возврата для успеха, а любые другие положительные или отрицательные целые числа могут определять различные условия ошибки.

0

Если вы принимаете правильное/ложное решение на любом языке, если ваш язык поддерживает логическое значение, используйте его.

Использование 0/1 для поддержки «лишних чисел», вероятно, означает, что ваше поле не является решением и может быть или стать несколькими вариантами.