Если набор цветов более или менее фиксирован, наиболее эффективным и наиболее читаемым способом будет использование строковых констант в вашем приложении, а затем использование типа SET
MySQL [] в ваших запросах. При использовании типа SET
с FIND_IN_SET MySQL использует одно целое число для хранения всех значений и использует двоичную "and"
операцию для проверки наличия значений, которые являются более эффективными, чем сканирование разделенной запятыми строки .
В SET('red','blue','green')
, 'red'
будет храниться внутри 1
, 'blue'
будет храниться внутри, так как 2
и 'green'
будут храниться внутри 4
. Значение 'red,blue'
будет сохранено как 3
(1|2
) и 'red,green'
как 5
(1|4
).