Общие > Базы данных
Типы полей SET ENUM в MySQL
-DieseLok-:
Здравствуйте!
Приведите пожалуйста яркий пример, где нужно использовать эти типы полей в бд?
насколько я понял, но я скорее всего ошибаюся,
образно есть параметры допустим с одним идентификатором, но с разным полем, скажем name
ия создаю таблицу с полями id и name
в id пишу 1 в name пишу \'Коля\', \'Петя\', \'Вася\'
в id пишу 2 в name пишу \'Таня\', \'Маня\', \'Клава\'
правильно?
Зарание спасибо!
Phoinix:
-DieseLok-
--- Цитировать ---но я скорее всего ошибаюся
--- Конец цитаты ---
Это точно...
--- Код: ---
CREATE TABLE my_table (
id INT(11) AUTO_INCREMENT,
name VARCAR(30),
sex ENUM(\'мужчина\',\'женщина\',\'не определено\') DEFAULT \'не определено\');
--- Конец кода ---
Только когда жеский список значений, имеет смысл исползовать ENUM.
Я лично, чаще использую этот тип поля как логический (Да, Нет):
field_name ENUM(\'Y\',\'N\') DEFAULT \'N\'
При этом другие значения это поле принимать не может...
Макс:
У меня сильная неприязнь к таким типам полей, поэтому вместо них я обычно использую tinyint (то есть обычные числа)
А в скрипте храню сами строки :
$yes_no = array("0" => "No", "1" => "Yes");
Причины:
1. нельзя применять в мультиязычны скриптах
2. неудобно получать список возможных значений поля
Макс:
--- Цитировать ---Макс:
1. нельзя применять в мультиязычны скриптах
--- Конец цитаты ---
при правильном подходе можно, но все равно надо делать похожую замену.
Forza:
--- Цитировать ---Макс:
2. неудобно получать список возможных значений поля
--- Конец цитаты ---
А вот и неправда. Достаточно один раз написать функцию, обрабатывающую результат запроса "SHOW COLUMNS FROM tableName LIKE \'columnName\'", добавить её в библиотеку важных функций и далее везде её использовать.
Навигация
Перейти к полной версии