Mysql външни ключове и техните настройки в PhpMyAdmin
Защо имаме нужда от външни ключове в таблицата
Чуждестранните ключове регулират отношенията между масите. Благодарение на тях, много опростен контрол на базовата структура, намалява и опростява кода на приложението, тъй като голяма част от отговорността за това се минава от раменете си до самата база данни. Конфигурирани правилно външни ключове - това е гаранция, че ще се увеличи на целостта на данните чрез намаляване на съкращения.
С две думи - в външни ключове много предимства, така че е полезно да се знае как те работят.
Създаване на външни ключове
Аз ще демонстрира конфигурацията в любимия си PHP и администрация, защото това е много удобно, в допълнение, администраторът не скрие генерирания код на заявката и винаги можете да го видите (не забравяйте, копиране, нарязани).
Пример ManyToOne и OneToMany
Две таблици: стоки (номер, име, catalog_id) и каталози (номер, име). В един набор от каталожните позиции (OneToMany) и неограничен брой продукти може да бъде в същата директория (ManyToOne). Външен ключ в този пример е в таблицата поле catalog_id стоки.
Създаване на таблици в PhpMyAdmin
генерирани заявки
Създаване catalog_id външен ключ
Това е време да се създаде връзка между стоките и каталози. Отворени стоки масата. отидете на бутона за раздел "Структура" и за "връзки" изглежда.
В "чужди ключови ограничения" попълните онлайн и да изберете действие «ON DELETE» и «ON UPDATE».
Генерираната искане
Стойности При изтриване и ON UPDATE
КАСКАДА - Cascade изтриване и редактиране. Тази настройка означава, че когато изтриете директория, всички продукти от него също изтрити. При редактиране, ако променим номер директория на стоки се промени автоматично в областта на «catalog_id».
ОГРАнИЧАВАТ - В тази обстановка, ако се опитаме да изтриете директория, която има на стоките, или да промени своя номер, базата данни ще ни даде грешка и отстраняване не се проведе.
SET NULL - От името става ясно, че ако си отиде (изтриване или модифициране) на директорията с идентификационния номер, а след това на стоките в сферата на «catalog_id» Задайте NULL стойност. С тази настройка, трябва да бъдете внимателни, защото индексите по подразбиране «NOT NULL».
Не се изисква действие - Не обръщайте внимание и изтриване на редактирането на директория, и нека «catalog_id» поле ще бъде не съществува идентичност, просто го игнорирате.
например ManyToMany
Създаване на таблица взаимоотношения
В PhpMyAdmin
Генерираната искане
author_id book_id и са заедно съставен индекс, то остава само да добавите ограничения върху всеки един от тях в раздела "връзки" и сте готови!
заключение
Не пропускайте възможността да се определят по-високи мита на базата данни, за да се улесни работата му върху него и да се мисли за нейната структура, а не на отношенията на контрол на маса. Успех с дизайна на базата данни, благодаря ви за вниманието!