David Shiko
Пардон, плохой пример привел, пол может быть только М/Ж, а у меня 3 варианта, лучше подойдет пример с ремонтом:
1: мастер умеет чинить стулья,
2: мастер умеет столы,
3: мастер умеет чинить столы + стулья
Задача: выбрать людей, которые умеют чинить столы.
И кажется я знаю как это решить... Просто у меня в базе почему то затесалось значение any для выбора пола человека, вот я и подзавис)
select ... where sex=‘male’ or sex=‘female’;
Это работает с дикой скоростью тк нет сравнения строк про типе sex_t.
Даже если сравнивать строки, если есть индекс по этому полю, то строка не используется. А происходят битовые операции.
Вообще, при грамотном описании схемы, в реляционной бд любой селект приводит к битовым операциям. Ну, не надо пользоваться like ;)