• 2
  • 3
  • 4
  • 6

Создание связей между таблицами с помощью phpmyadmin

В этой заметке мы научимся создавать связи между таблицами в базе данных MySQL с помощью phpmyadmin. Если по какой-то причине вы не желаете использовать phpmyadmin, смотрите приведенные ниже SQL-запросы.

Почему же связи удобно держать в самой базе данных? Ведь эту задачу обычно решает так и само приложение? Все дело в ограничениях и действиях при изменении, которые можно наложить на связи.

Например, можно запретить удалять категорию, если с ней связана хотя б одна заметка. Или удалить все заметки, если удалена категория. Или установить NULL в связующее поле. В любом случае, с помощью связей повышается отказоустойчивость и надежность приложения.

Для начала, движок таблиц должен быть InnoDB. Только он поддерживает внешние ключи (foreign key). Если у вас таблицы MyISAM, почитайте как их конвертировать в InnoDB.

Для того, чтобы связать таблицы по полям, необходимо сначала добавить в индекс связываемые поля:

В phpmyadmin выбираем таблицу, выбираем режим структуры, выделяем поле, для которого будем делать внешнюю связь и кликаем Индекс.

index MySQLОбратите внимание на разницу между "Индекс" и "Уникальный". Уникальный индекс можно использовать, например, до поля id, то есть там, где значения не повторяются.

 

Это же действие можно сделать с помощью SQL-запроса:

ALTER TABLE `table_name` ADD INDEX ( `field_name` ) ;

Аналогично добавляем индекс (только в моем случае теперь уже уникальный или первичный) для таблицы, на которую ссылаемся, для поля id. Поскольку поле id у меня идентификатор, для него делаем первичный ключ. Уникальный ключ мог бы понадобится для других уникальных полей.

index MySQLС помощью SQL-запроса:

ALTER TABLE `table_name` ADD UNIQUE (`field_name`);

Теперь осталось только связать таблицы. Для этого кликаем внизу на пункт Связи:

phpmyadmin MySQL connections

Теперь для доступных полей (а доступны только проиндексированные поля) выбираем связь с внешними таблицами и действия при изменении записей в таблицах:

Connections with MySQL tablesЧерез SQL-запрос:

ALTER TABLE `table_name` ADD FOREIGN KEY ( `field_in_table_name_which_need_connect` ) REFERENCES `outer_table_to_connect` (`outer_field`) ON DELETE RESTRICT ON UPDATE RESTRICT ;

на этом все, таблицы связаны через foreign key.

MVSocialButtons

Share this post

Отправить в FacebookОтправить в Google BookmarksОтправить в OdnoklassnikiОтправить в Vkcom

Авторизация

Новые пользователи

  • lilianade1
  • adawl4
  • Wilcanjaicy
  • karinex
  • Bernicesap

Статистика сайта

ОС
Linux r
PHP
5.6.30
MySQLi
5.7.21-20-beget-5.7.21-20-1-log
Время
18:54
Кэширование
Отключено
GZip
Отключено
Посетители
32361
Материалы
316
Количество просмотров материалов
419933

Подписаться на канал по математике

 
cassidy clay free pornmalay young girls sucking cockbeeg gallery hdchina young sexyoung inzestpornfree download sunny leon porn hd vedeos moviesxxx.biz Bangladeshi scandalfree daughter gangbangöld granny fikautumn riley porn video free download Bangladeshi scandalfree daughter gangbangöld granny fikautumn riley porn video free download mobile porn sexyoung inzestpornfree download sunny leon porn hd vedeos