1) Возможно ли это? Да. Я использую это в моей текущей базе данных проекта, которая включает в себя сверку проверок. Если элемент должен быть исключен, я отмечаю его в столбце пропуска. Поскольку есть много причин, чтобы что-то пропустить, и я хочу знать, почему это было пропущено, я установил флаг с помощью побитовых операторов.
2) Это быстро? В ограниченных случаях. WHERE skip = 0
? Быстро. WHERE skip & 4 = 4
... хорошо, в будущем у меня будет сканирование таблицы со всеми значениями, которые запрашиваются и обрабатываются для выполнения моего запроса.
Быстрая вставка, быстрая выборка числовых диапазонов, но очень медленная, если вы хотите знать все, для чего установлен флаг понедельника. Скорее, если вы хотите знать все, для чего установлен флаг воскресенья, и знать, что нужно запрашивать >= 64
.
В ответе Майка Уитя есть правильные запросы для других ваших вопросов, поэтому я не буду дублировать это. Обратите внимание, что им потребуется сканирование таблицы, и она не будет быстрой. Если у вас есть их как отдельные столбцы, и вы будете индексировать каждый из этих столбцов, вы будете использовать много места для создания индексов. Вы увидите ограниченную выгоду от этого в таблице, если только они не охватывают индексы ... Суббота + что угодно, кроме среды, все равно придется сканировать либо всю субботу, либо всю среду в конфигурации дня на столбец. Сканирование всех этих таблиц в этом сценарии может оказаться быстрее, чем поиск, в зависимости от разброса данных и т. Д.