Форум программистов «Весельчак У»
  *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

  • Рекомендуем проверить настройки временной зоны в вашем профиле (страница "Внешний вид форума", пункт "Часовой пояс:").
  • У нас больше нет рассылок. Если вам приходят письма от наших бывших рассылок mail.ru и subscribe.ru, то знайте, что это не мы рассылаем.
   Начало  
Наши сайты
Помощь Поиск Календарь Почта Войти Регистрация  
 
Страниц: 1 [2]  Все   Вниз
  Печать  
Автор Тема: mysql, порядок создания полей для составного индекса  (Прочитано 40500 раз)
0 Пользователей и 1 Гость смотрят эту тему.
RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #30 : 20-10-2015 09:52 » 

Partition есть уже даже в MySQL и причем давно. Только это тоже не панацея и бить таблицу в несколько десятков метров, мягко говоря, преждевременно.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #31 : 20-10-2015 19:17 » 

абстрактный вопрос!

имеется таблица `группа`,`А`,`Б`

в пределах группы значения А должны быть уникальны, также значения Б должны быть уникальны

Код:
группа   A   Б
   1     2   2
   1     2   3   - нельзя , повторилось значение А
   1     4   8   - можно
   1     7   3   - нельзя , повторилось значение Б
   2     2   2   - можно, поскольку группа сменилась
   2     4   8   - можно
   2     4   7   - нельзя

Возможно ли добавить такой контроль средствами базы, при помощи ключей ? Составной ключ тут явно не катит, что-то похитрее нужно.





Добавлено через 1 минуту и 15 секунд:
есть, однако, предположение, что два уникальных составных индекса могут помочь
(группа,А)
(группа,Б)

только выглядит как-то коряво
« Последнее редактирование: 20-10-2015 19:19 от Алексей1153 » Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #32 : 20-10-2015 19:37 » 

Все верно, два UNIQUE KEY. Если это только ограничитель вставки, то порядок полей не важен. Если индекс используется для выборки, то важен.
Более сложные ограничения возможны с триггерами, но это сильно замедляет вставку. Если вставка редка, то можно и триггерами.
« Последнее редактирование: 20-10-2015 19:40 от RXL » Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #33 : 21-10-2015 04:45 » new

спасибо

это таблица - справочник, скорость вставки и выборки вроде не критичны совершенно. В отличие от такой проверки
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #34 : 21-10-2015 08:53 » 

Версия MySQL сервера какая?
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Алексей++
глобальный и пушистый
Глобальный модератор

ru
Offline Offline
Сообщений: 13


« Ответ #35 : 22-10-2015 05:00 » 

версия 5.6
Записан

RXL
Технический
Администратор

ru
Offline Offline
Пол: Мужской

WWW
« Ответ #36 : 22-10-2015 10:59 » 

Норм. Исключения в процедурах и триггерах поддерживаются.
Записан

... мы преодолеваем эту трудность без синтеза распределенных прототипов. (с) Жуков М.С.
Страниц: 1 [2]  Все   Вверх
  Печать  
 

Powered by SMF 1.1.21 | SMF © 2015, Simple Machines