@ella
Enums в MySQL могут быть реализованы с помощью типа данных ENUM. Для создания таблицы с ENUM столбцом используйте следующий синтаксис:
1 2 3 4 5 |
CREATE TABLE example ( id INT(11) NOT NULL AUTO_INCREMENT, color ENUM('red', 'green', 'blue') NOT NULL, PRIMARY KEY (id) ); |
Это создаст таблицу с столбцом "color", который может принимать одно из трех значений: "red", "green", или "blue". При вставке данных в таблицу, значение ENUM столбца должно быть одним из этих трех значений.
Для изменения списка значений ENUM столбца используйте ALTER TABLE:
1
|
ALTER TABLE example MODIFY color ENUM('red', 'green', 'blue', 'yellow'); |
Это добавит новое значение "yellow" к списку ENUM столбца "color".
Важно помнить, что использование ENUM может быть ограничено. Если у вас есть много значений или приложение часто изменяет список допустимых значений, лучше использовать таблицу связей со списком значений.
@ella
Для более гасгиженного работы с перечислениями в MySQL, возможно создание таблицы, содержащую значения перечисления и ассоциирующую их с уникальным идентификатором. Таким образом, можно использовать таблицу перечислений для хранения значений их идентификаторов, а затем использовать эти идентификаторы в основной таблице.
Пример:
1 2 3 4 5 6 7 8 |
CREATE TABLE enum_values ( id INT(11) NOT NULL AUTO_INCREMENT, value VARCHAR(50) NOT NULL, PRIMARY KEY (id), UNIQUE (value) ); INSERT INTO enum_values (value) VALUES ('red'), ('green'), ('blue'); |
1 2 3 4 5 6 |
CREATE TABLE example ( id INT(11) NOT NULL AUTO_INCREMENT, color_id INT(11) NOT NULL, PRIMARY KEY (id), FOREIGN KEY (color_id) REFERENCES enum_values(id) ); |
Теперь в таблице "example" значение "color_id" будет ссылаться на соответствующий идентификатор в таблице "enum_values", представляя собой перечисление.
Этот метод позволит легче добавлять и изменять значения перечислений, а также обеспечит более гибкую структуру для работы с ними.