Вы можете сохранить значения в виде текста, а затем использовать триггер вставки, чтобы проверить, что сохраненные значения являются одним из допустимых значений (поскольку MySQL не поддерживает проверочные ограничения).
Вы также можете индексироватьминимальное количество символов, чтобы обеспечить уникальность, чтобы уменьшить накладные расходы на индексирование.В вашем примере вам нужно всего лишь индексировать первый символ, поскольку «B», «P» и «R» уникальны.Если вы добавите «Коричневый» в список, вам нужно будет проиндексировать первые два символа («Bl», «Pi», «Re», «Br»).
РЕДАКТИРОВАТЬ Мое первоначальное предложение состояло в том, чтобы сохранить значения в виде их фактических текстовых представлений, а не в виде числа.добавьте таблицу 'colors':
id INT
name VARCHAR
Тогда ваш столбец enum будет внешним ключом таблицы цветов.Затем, когда вы сделаете свой выбор:
SELECT ...,colors.name AS color
FROM table t
JOIN colors c ON t.color = c.id