Форум программистов, компьютерный форум, киберфорум
Наши страницы
MySQL
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
Cheb
90 / 57 / 8
Регистрация: 09.11.2011
Сообщений: 443
1

зачем нужны ключи KEY?

03.02.2014, 10:16. Просмотров 992. Ответов 3
Метки нет (Все метки)

Кто может доходчиво объяснить, зачем нужена вот эта строка?
KEY `user_sender` (`user_sender`) в запросе:
MySQL
1
2
3
4
5
6
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`));
Читаю книжки. Все понимаю кроме этого. Непонятно какими свойствами наделяется поле `user_sender`?
Ведь оно и не уникальное, как `id_order`. Зачем этот синтаксис используется? Только для связи с другими таблицами во внешних ключах (FOREIGN KEY (`user_sender`))???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
03.02.2014, 10:16
Ответы с готовыми решениями:

Для чего нужны ключи: первичные, уникальные, простые?
Возник, возможно, глупый вопрос. Для чего нужны ключи: первичные ключи,...

Зачем нужны связи в БД?
Может вопрос совсем нубский, но что- не пойму. Зачем связывать как то таблицы,...

Зачем нужны связи в базах данных?
Здравствуйте, недавно работаю с базами данных и в процессе возник вопрос: зачем...

Зачем нужны связи Один к Одному, Один ко Многим? Пример простой выборки
На этапе проектирования делаются связи один к одному один ко многим, откуда эти...

#1170 - BLOB/TEXT column 'id' used in key specification without a key length
После выполнения этого кода: CREATE TABLE forum_themes( id TINYTEXT, name...

3
cygapb-007
1306 / 938 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
03.02.2014, 10:41 2
например, Когда нужно создавать индексы

а вообще, смотрите селективность индекса
0
Cheb
90 / 57 / 8
Регистрация: 09.11.2011
Сообщений: 443
03.02.2014, 10:51  [ТС] 3
Цитата Сообщение от cygapb-007 Посмотреть сообщение
Когда нужно создавать индексы
для этого есть CREATE INDEX
А синтаксис KEY зачем? Только не говорите, что это еще один способ создавать индексы

Главный вопрос :
Непонятно какими свойствами наделяется поле `user_sender`?
0
cygapb-007
1306 / 938 / 144
Регистрация: 17.01.2013
Сообщений: 2,348
03.02.2014, 11:21 4
для контроля ссылочной целостности KEY не требуется, достаточно задать ограничение FK

KEY, равно как и INDEX, необходим для поиска информации, и никаких дополнительных свойств на поле не накладывает

http://sqlfiddle.com/#!2/477693/1
1
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
03.02.2014, 11:21

Как одной строкой запроса добавить один и тот же сгенерированный UUID в поле Key таблицы1 и в поле Foreign Key таблицы2 ?
У меня получается добавить одним запросом один и тот же UUID в две таблицы. ...

BLOB/TEXT column 'text' used in key specification without a key length
Короче хочу добавить индекс к полю в итоге получаю ошибку.. BLOB/TEXT column...

Ключи
Возник такой вопрос, в данной БД не всегда будут использованы все сущности, то...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru