Внешний ключ: что это такое и как использовать в базах данных

Внешний ключ (Foreign Key) – это понятие, используемое для описания отношения между двумя таблицами в реляционной базе данных. В соответствии с этим понятием, в таблице, которая находится в отношении с другой таблицей, имеется столбец, соответствующий столбцу первичного ключа таблицы, к которой устанавливается отношение.

Конкретный пример можно рассмотреть на базе данных для онлайн магазина. В БД могут быть две таблицы: категории товаров и сами товары. В таблице категорий будет первичный ключ (категория_id), а в таблице товаров вместо полного названия категории можно хранить только id (категория_id), который будет ссылаться на id категории из первой таблицы.

Пример создания внешнего ключа в MySQL:

CREATE TABLE `Категории` (

`Категория_id` INT(11) NOT NULL AUTO_INCREMENT,

`Название_категории` VARCHAR(255) NOT NULL,

PRIMARY KEY (`Категория_id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `Товары` (

`Товар_id` INT(11) NOT NULL AUTO_INCREMENT,

`Название_товара` VARCHAR(255) NOT NULL,

`Цена` DECIMAL(10, 2) NOT NULL,

`Категория_id` INT(11) NOT NULL,

PRIMARY KEY (`Товар_id`),

CONSTRAINT `Товары_Категории_fk` FOREIGN KEY (`Категория_id`) REFERENCES `Категории` (`Категория_id`) ON DELETE CASCADE

) ENGINE=InnoDB DEFAULT CHARSET=utf8;

Данный код создаст две таблицы: "Категории" и "Товары", а также создаст связь между ними, где поле "Категория_id" таблицы "Товары" связано со столбцом "Категория_id" таблицы "Категории".

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

Похожие вопросы на: "внешний ключ "

Как использовать неразрывный пробел (nbsp) в HTML?
Изучение Objective-C для разработки iOS и MacOS приложений
Ruffle Flash Player - бесплатный воспроизводитель Flash-контента
Асинхронное программирование в JavaScript: всё, что вам нужно знать
Как использовать JS Window Onload:
Справочник C Reference – полное руководство для программистов на С
Установка OpenCV с помощью pip
Инкремент Python
Как выровнять текст по вертикали с помощью CSS
<h1>Explore VBA ListBox: Examples and Tutorials for Excel