Mysql външни ключове и техните настройки в PhpMyAdmin

Защо имаме нужда от външни ключове в таблицата

Чуждестранните ключове регулират отношенията между масите. Благодарение на тях, много опростен контрол на базовата структура, намалява и опростява кода на приложението, тъй като голяма част от отговорността за това се минава от раменете си до самата база данни. Конфигурирани правилно външни ключове - това е гаранция, че ще се увеличи на целостта на данните чрез намаляване на съкращения.

С две думи - в външни ключове много предимства, така че е полезно да се знае как те работят.

Създаване на външни ключове

Аз ще демонстрира конфигурацията в любимия си PHP и администрация, защото това е много удобно, в допълнение, администраторът не скрие генерирания код на заявката и винаги можете да го видите (не забравяйте, копиране, нарязани).

Пример ManyToOne и OneToMany

Две таблици: стоки (номер, име, catalog_id) и каталози (номер, име). В един набор от каталожните позиции (OneToMany) и неограничен брой продукти може да бъде в същата директория (ManyToOne). Външен ключ в този пример е в таблицата поле catalog_id стоки.

Създаване на таблици в PhpMyAdmin

Mysql външни ключове и техните настройки в PhpMyAdmin

Mysql външни ключове и техните настройки в PhpMyAdmin

генерирани заявки

Създаване catalog_id външен ключ

Това е време да се създаде връзка между стоките и каталози. Отворени стоки масата. отидете на бутона за раздел "Структура" и за "връзки" изглежда.

В "чужди ключови ограничения" попълните онлайн и да изберете действие «ON DELETE» и «ON UPDATE».

Генерираната искане

Стойности При изтриване и ON UPDATE

КАСКАДА - Cascade изтриване и редактиране. Тази настройка означава, че когато изтриете директория, всички продукти от него също изтрити. При редактиране, ако променим номер директория на стоки се промени автоматично в областта на «catalog_id».

ОГРАнИЧАВАТ - В тази обстановка, ако се опитаме да изтриете директория, която има на стоките, или да промени своя номер, базата данни ще ни даде грешка и отстраняване не се проведе.

SET NULL - От името става ясно, че ако си отиде (изтриване или модифициране) на директорията с идентификационния номер, а след това на стоките в сферата на «catalog_id» Задайте NULL стойност. С тази настройка, трябва да бъдете внимателни, защото индексите по подразбиране «NOT NULL».

Не се изисква действие - Не обръщайте внимание и изтриване на редактирането на директория, и нека «catalog_id» поле ще бъде не съществува идентичност, просто го игнорирате.

например ManyToMany

Създаване на таблица взаимоотношения

В PhpMyAdmin

Mysql външни ключове и техните настройки в PhpMyAdmin

Mysql външни ключове и техните настройки в PhpMyAdmin

Генерираната искане

author_id book_id и са заедно съставен индекс, то остава само да добавите ограничения върху всеки един от тях в раздела "връзки" и сте готови!

заключение

Не пропускайте възможността да се определят по-високи мита на базата данни, за да се улесни работата му върху него и да се мисли за нейната структура, а не на отношенията на контрол на маса. Успех с дизайна на базата данни, благодаря ви за вниманието!