SQLinfo.ru - Все о MySQL

Форум пользователей MySQL

Задавайте вопросы, мы ответим

Вы не зашли.

#1 03.02.2014 11:02:31

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Какими свойствами наделяется поле при объявлении его в KEY?

Кто может доходчиво объяснить, зачем нужена вот эта строка?
KEY `user_sender` (`user_sender`) в запросе:


CREATE TABLE `orders`
           ( `id_order` int(11) NOT NULL AUTO_INCREMENT,
             `user_sender` int(11) DEFAULT NULL,
  PRIMARY KEY (`id_order`),
...
  KEY `user_sender` (`user_sender`),
...
  CONSTRAINT `orders_fk` FOREIGN KEY (`user_sender`) REFERENCES `users` (`id_user`));
 


Читаю книжки. И вот это
http://sqlinfo.ru/forum/viewtopic.php?id=603
http://sqlinfo.ru/forum/viewtopic.php?id=2720
где написанно "Для того, чтобы создался внешний ключ, нужно, чтобы были обычные ключи на соответствующих столбцах таблиц"

Непонятно какими свойствами наделяется поле `user_sender`?
Ведь оно и не уникальное, как `id_order`. Зачем этот синтаксис используется? Только для связи с другими таблицами во внешних ключах (FOREIGN KEY (`user_sender`))???

Похоже это нужно для создания индексов, но есть же синтаксис CREATE INDEX

Неактивен

 

#2 03.02.2014 11:20:52

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Какими свойствами наделяется поле при объявлении его в KEY?

Эта конструкция создает индекс с именем `user_sender` по полю `user_sender`. Индекс может быть и неуникальным.

С помощью CREATE INDEX тоже можно сделать индекс, но это отдельная команда, а конструкция  "KEY `user_sender` (`user_sender`)" создает индекс в рамках команды CREATE TABLE

Неактивен

 

#3 03.02.2014 11:32:05

vasya
Архат
MySQL Authorized Developer
Откуда: Орел
Зарегистрирован: 07.03.2007
Сообщений: 5842

Re: Какими свойствами наделяется поле при объявлении его в KEY?

В качестве простого примера не уникального индекса можно привести алфавитный указатель в конце книги. Слова в тексте повторяются, однако алфавитный указатель значительно ускоряет поиск нужного места в книге.
Для лучшего понимания работы индексов рекомендую посмотреть тему из FAQ №5

Неактивен

 

#4 03.02.2014 11:57:42

Cheb
Завсегдатай
Зарегистрирован: 27.12.2013
Сообщений: 28

Re: Какими свойствами наделяется поле при объявлении его в KEY?

спасибо я faq смотрел, там про индексы. Я думал, Key это что-то другое. оказывается -нет

Неактивен

 

Board footer

Работает на PunBB
© Copyright 2002–2008 Rickard Andersson