Модераторы: skyboy
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Множественные ключи, Уникальное сочетание колонок 
:(
    Опции темы
Xelius
Дата 5.9.2005, 10:53 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.8.2005
Где: Казань

Репутация: нет
Всего: нет



Прошу прощения за пионерский вопрос, но задача вот в чём : нужно сделать таблицу, где роль PRIMARY KEY выполнял бы не один столбец, а сочетание. Например ДАТА-ЦЕНА-КОД. Чтобы было так, что если отличается хотябы одна из этих колонок, то остальные могли совпадать, например ДАТА=05/02 ЦЕНА=20 КОД=BCD3, т.е. ДАТА=06/02 ЦЕНА=20 КОД=BCD3 принимается, но такая же строка - нет. Изменяться могут все колонки. Не хотелось бы создавать автоинкремент ID и надеятся, что строки не совпадут. Пытался порыться в поиске, но ничего подходящего не нашёл, кроме создания индексов по этим столбцам. В доках по MySQL тож как-то всё невразумительно написано. Заранее спасибо.
PM MAIL ICQ   Вверх
Ignat
Дата 5.9.2005, 12:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Xelius, к сожалению, на стабильных версиях MySQL контроль за уникальность сочетаний невозможен, только средствами клиента. С пятой версии возможны хранимые процедуры, но пока эта версия популярностью не пользуется ибо доступен только "Development release".


--------------------
Теперь при чем :P
PM   Вверх
Xelius
Дата 5.9.2005, 12:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.8.2005
Где: Казань

Репутация: нет
Всего: нет



Ignat, спасибо за ответ. Жаль, что нельзя. Тогда хочу узнать мнение по такому варианту решения проблемы - сделать ещё одно текстовове поле, в котором будет формироваться нужное сочетание и сделать это пое PRIMARY KEY. Как я понял сделать это на стороне MySQL сервера не получится. Значит придётся вызывающим скриптом. Мне просто нужно, чтобы одинаковые строки не попали.
PM MAIL ICQ   Вверх
Ignat
Дата 5.9.2005, 12:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Флудератор
****


Профиль
Группа: Экс. модератор
Сообщений: 4030
Регистрация: 19.4.2004
Где: غيليندزيك مدينة

Репутация: 21
Всего: 73



Цитата(Xelius @ 5.9.2005, 13:43)
Тогда хочу узнать мнение по такому варианту решения проблемы - сделать ещё одно текстовове поле, в котором будет формироваться нужное сочетание и сделать это пое PRIMARY KEY.

Достаточно распространенное решение данного вопроса. Думаю, это будет оптимальный выход.


--------------------
Теперь при чем :P
PM   Вверх
Xelius
Дата 5.9.2005, 13:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 7
Регистрация: 15.8.2005
Где: Казань

Репутация: нет
Всего: нет



Огромное спасибо. Теперь буду знать, куда обращаться.
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | MySQL | Следующая тема »


 




[ Время генерации скрипта: 0.0420 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.