Forum Webscript.Ru

Общие => Базы данных => Тема начата: -DieseLok- от 04 Декабря 2004, 16:08:40

Название: Типы полей SET ENUM в MySQL
Отправлено: -DieseLok- от 04 Декабря 2004, 16:08:40
Здравствуйте!

Приведите пожалуйста яркий пример, где нужно использовать эти типы полей в бд?


насколько я понял, но я скорее всего ошибаюся,

образно есть параметры допустим с одним идентификатором, но с разным полем, скажем name

ия создаю таблицу с полями id и name

в id пишу 1  в name пишу \'Коля\', \'Петя\', \'Вася\'
в id пишу 2  в name пишу \'Таня\', \'Маня\', \'Клава\'

правильно?

Зарание спасибо!
Название: Типы полей SET ENUM в MySQL
Отправлено: Phoinix от 04 Декабря 2004, 17:08:27
-DieseLok-

Цитировать
но я скорее всего ошибаюся

Это точно...


CREATE TABLE my_table (
id INT(11) AUTO_INCREMENT,
name VARCAR(30),
sex ENUM(\'мужчина\',\'женщина\',\'не определено\') DEFAULT \'не определено\');

Только когда жеский список значений, имеет смысл исползовать ENUM.

Я лично, чаще использую этот тип поля как логический (Да, Нет):

field_name ENUM(\'Y\',\'N\') DEFAULT \'N\'

При этом другие значения это поле принимать не может...
Название: Типы полей SET ENUM в MySQL
Отправлено: Макс от 04 Декабря 2004, 18:28:38
У меня сильная неприязнь к таким типам полей, поэтому вместо них я обычно использую tinyint (то есть обычные числа)
А в скрипте храню сами строки :
$yes_no = array("0" => "No", "1" => "Yes");

Причины:
1. нельзя применять в мультиязычны скриптах
2. неудобно получать список возможных значений поля
Название: Типы полей SET ENUM в MySQL
Отправлено: Макс от 04 Декабря 2004, 18:33:35
Цитировать
Макс:
1. нельзя применять в мультиязычны скриптах

при правильном подходе можно, но все равно надо делать похожую замену.
Название: Типы полей SET ENUM в MySQL
Отправлено: Forza от 04 Декабря 2004, 20:39:24
Цитировать
Макс:
2. неудобно получать список возможных значений поля

А вот и неправда. Достаточно один раз написать функцию, обрабатывающую результат запроса "SHOW COLUMNS FROM tableName LIKE \'columnName\'", добавить её в библиотеку важных функций и далее везде её использовать.
Название: Типы полей SET ENUM в MySQL
Отправлено: Phoinix от 05 Декабря 2004, 08:53:38
Макс
Цитировать
У меня сильная неприязнь к таким типам полей, поэтому вместо них я обычно использую tinyint


А мне лично, чем нравится это поле - именно тем что идет ограничение возможных вариантов значений для поля...
Название: Типы полей SET ENUM в MySQL
Отправлено: -DieseLok- от 07 Декабря 2004, 04:28:34
А можно реальный пример использования этих полей со взаимодействием хтмэловских форм?