Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Enum_Set отличия / 9 сообщений из 9, страница 1 из 1
25.11.2013, 21:02:05
    #38477318
Hanna_Urievna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Подскажите, в чем отличие ENUM от SET? И в чем вообще суть этих типов данных? Заранее спасибо!
...
Рейтинг: 0 / 0
25.11.2013, 21:12:55
    #38477323
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
enum - тип перечислимых значений. В дополнение к описанным включает null и пустую строку.
set - битовая маска перечислимых значений. В дополнение к описанным включает только null.
...
Рейтинг: 0 / 0
25.11.2013, 21:27:52
    #38477334
Hanna_Urievna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Akina
т.е если мы выполним запрос CREATE TABLE "t1" ("en1", ENUM ("orange", "apple", "grape") NOT NULL)
то создастся таблица t1 со столбцом en1, который содержит значения "orange", "apple", "grape"? правильно?

а если запрос будет такой: CREATE TABLE "t1" ("en1", SET("orange", "apple", "grape") NOT NULL)
то что произойдет в этом случае? в чем отличия?
...
Рейтинг: 0 / 0
25.11.2013, 22:15:16
    #38477363
Arhat109
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Hanna_Urievna,

перечислимые значения - "одно из" в каждый конкретный момент времени. То есть поле может содержать или то или другое. Этакая замена выделенному справочнику значений. Но, в отличии от нормальной таблицы-справочника поля, определенные как один тип таковыми на практике не являются.

множество - "любая комбинация из" возможных значений. Каждое значение представлено своим битом из 64-х возможных. Могут одновременно присутствовать несколько.

От себя: пробовал делать SET, ожидалось, что можно работать как с обычной битовой маской. Фиг-то там. Привозврате из подзапроса на уровень выше - получаем строку и с битовыми операциями, например групповыми оно не сочетается никак. и то и другое в реализации по сути - строки.

В целом сложилось впечатление что оба типа - недоделанные залипухи.
...
Рейтинг: 0 / 0
25.11.2013, 23:43:04
    #38477427
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Hanna_UrievnaAkina
т.е если мы выполним запрос CREATE TABLE "t1" ("en1", ENUM ("orange", "apple", "grape") NOT NULL)
то создастся таблица t1 со столбцом en1, который содержит значения "orange", "apple", "grape"? правильно?

а если запрос будет такой: CREATE TABLE "t1" ("en1", SET("orange", "apple", "grape") NOT NULL)
то что произойдет в этом случае? в чем отличия?
Во втором случае возможно
Код: sql
1.
Insert into t1 (en1) Values ('orange', 'apple', 'grape');
...
Рейтинг: 0 / 0
25.11.2013, 23:48:58
    #38477438
Akina
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Arhat109сложилось впечатление что оба типа - недоделанные залипухи.В общем да.

enum - просто перенесение функционала подстановки с клиента на сервер. Впрочем, с учётом отдаваемого типа профит сомнительный. Хотя можно рассматривать как избавление от дополнительного джойна для небольшого статического словаря.

А вменяемого использования set мне вообще не попадалось. И даже с использованием Make_Set и Find_In_Set тоже ничего осмысленного не придумывается.
...
Рейтинг: 0 / 0
26.11.2013, 10:59:59
    #38477802
MasterZiv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Hanna_UrievnaПодскажите, в чем отличие ENUM от SET? И в чем вообще суть этих типов данных? Заранее спасибо!


Да не используй ты эту хрень.

Простое поле с check constraint универсальнее.
...
Рейтинг: 0 / 0
26.11.2013, 11:18:15
    #38477830
miksoft
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
MasterZivПростое поле с check constraint универсальнее.В других СУБД - может быть. А вот в MySQL check constraint не работают.
...
Рейтинг: 0 / 0
26.11.2013, 17:44:46
    #38478727
Hanna_Urievna
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Enum_Set отличия
Спасибо всем! теперь понятно =)
...
Рейтинг: 0 / 0
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Enum_Set отличия / 9 сообщений из 9, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]