[имя] спросил: Поле 'нашли ли рейсы' имеет только два значения (да/нет). Как его лучше представить в ClickHouse? Какой тип данных используется под капотом для Bool?

Для признака «нашлись рейсы» подходит Bool; в ClickHouse он хранится как UInt8 со значениями 0 и 1. Если возможна неизвестность, используйте Nullable(Bool).

Короткий ответ

Что ответить на собеседовании

Для признака «нашлись рейсы» подходит Bool; в ClickHouse он хранится как UInt8 со значениями 0 и 1. Если возможна неизвестность, используйте Nullable(Bool).

Подробный разбор

Ответ с пояснениями

Для признака «нашлись рейсы» подходит Bool; в ClickHouse он хранится как UInt8 со значениями 0 и 1. Если возможна неизвестность, используйте Nullable(Bool).

Bool ясно выражает смысл поля и принимает логические значения true и false. Строки «да» и «нет» требуют дополнительного соглашения и менее удобны для вычислений.

Не подменяйте отсутствие результата значением false, если поиск ещё не завершён или произошла ошибка. Такой случай нужно моделировать отдельно: nullable-значением или статусом операции. Для завершённого корректного поиска достаточно обычного Bool.

Источник: clickhouse.com.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее