Автор Тема: Типы полей SET ENUM в MySQL  (Прочитано 4694 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн -DieseLok-

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 178
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kyivstar.biz
Типы полей SET ENUM в MySQL
« : 04 Декабря 2004, 16:08:40 »
Здравствуйте!

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


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

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

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

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

правильно?

Зарание спасибо!

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Типы полей SET ENUM в MySQL
« Ответ #1 : 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\'

При этом другие значения это поле принимать не может...
« Последнее редактирование: 04 Декабря 2004, 17:13:51 от Phoinix »

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Типы полей SET ENUM в MySQL
« Ответ #2 : 04 Декабря 2004, 18:28:38 »
У меня сильная неприязнь к таким типам полей, поэтому вместо них я обычно использую tinyint (то есть обычные числа)
А в скрипте храню сами строки :
$yes_no = array("0" => "No""1" => "Yes");

Причины:
1. нельзя применять в мультиязычны скриптах
2. неудобно получать список возможных значений поля
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Макс

  • vir magni ingenii
  • Глобальный модератор
  • Ветеран
  • *****
  • Сообщений: 3534
  • +0/-0
  • 2
    • Просмотр профиля
Типы полей SET ENUM в MySQL
« Ответ #3 : 04 Декабря 2004, 18:33:35 »
Цитировать
Макс:
1. нельзя применять в мультиязычны скриптах

при правильном подходе можно, но все равно надо делать похожую замену.
First learn computer science and all the theory. Next develop a programming style. Then forget all that and just hack. ( George Carrette )

Оффлайн Forza

  • Фанат форума
  • Старожил
  • ****
  • Сообщений: 288
  • +0/-0
  • 0
    • Просмотр профиля
Типы полей SET ENUM в MySQL
« Ответ #4 : 04 Декабря 2004, 20:39:24 »
Цитировать
Макс:
2. неудобно получать список возможных значений поля

А вот и неправда. Достаточно один раз написать функцию, обрабатывающую результат запроса "SHOW COLUMNS FROM tableName LIKE \'columnName\'", добавить её в библиотеку важных функций и далее везде её использовать.

Оффлайн Phoinix

  • RW
  • Ветеран
  • *****
  • Сообщений: 1097
  • +0/-0
  • 2
    • Просмотр профиля
    • http://phoinix.ucoz.ru
Типы полей SET ENUM в MySQL
« Ответ #5 : 05 Декабря 2004, 08:53:38 »
Макс
Цитировать
У меня сильная неприязнь к таким типам полей, поэтому вместо них я обычно использую tinyint


А мне лично, чем нравится это поле - именно тем что идет ограничение возможных вариантов значений для поля...

Оффлайн -DieseLok-

  • Фанат форума
  • Постоялец
  • ***
  • Сообщений: 178
  • +0/-0
  • 0
    • Просмотр профиля
    • http://kyivstar.biz
Типы полей SET ENUM в MySQL
« Ответ #6 : 07 Декабря 2004, 04:28:34 »
А можно реальный пример использования этих полей со взаимодействием хтмэловских форм?

 

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28