Top.Mail.Ru
Ответы

(MySQL) Зачем здесь при создании таблицы CREATE INDEX? //реализация древовидной структуры

CREATE TABLE al_tree (
`id` BIGINT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`parent_id` BIGINT NULL,
`name` VARCHAR(50) NOT NULL
) TYPE=InnoDB DEFAULT CHARSET=utf8;

CREATE INDEX fk_tree_tree ON al_tree (parent_id);

ALTER TABLE al_tree ADD CONSTRAINT fk_tree_tree
FOREIGN KEY (parent_id) REFERENCES al_tree (id) ON UPDATE CASCADE ON DELETE CASCADE;

INSERT INTO al_tree VALUES
(1, NULL, 'FOOD'),
(2, 1, 'VEGETABLE'),
(3, 2, 'POTATO'),
(4, 2, 'TOMATO'),
(5, 1, 'FRUIT'),
(6, 5, 'APPLE'),
(7, 5, 'BANANA');

По дате
По рейтингу
Аватар пользователя
Искусственный Интеллект
8лет

Для того, чтобы ускорить поиск по этому столбцу, т. к. не требуется проверять всю таблицу.