Загрузка данных


-- 1. Создаем базу данных
CREATE DATABASE IF NOT EXISTS GardenDB;
USE GardenDB;

-- 2. Создаем таблицу "Сады" (Первая основная сущность)
CREATE TABLE gardens (
    id INT PRIMARY KEY AUTO_INCREMENT,        -- Уникальный номер сада
    name VARCHAR(100) NOT NULL,               -- Название сада (например, "Ботанический сад")
    address VARCHAR(200)                      -- Адрес сада
);

-- 3. Создаем таблицу "Деревья" (Вторая основная сущность)
CREATE TABLE trees (
    id INT PRIMARY KEY AUTO_INCREMENT,        -- Уникальный номер вида дерева
    species VARCHAR(100) NOT NULL,            -- Название вида (например, "Яблоня", "Дуб")
    max_height_m DECIMAL(5,2)                 -- Максимальная высота в метрах
);

-- 4. Создаем связующую таблицу "Деревья в садах"
-- (Реализует связь Многие-ко-Многим)
CREATE TABLE garden_trees (
    garden_id INT,                            -- Ссылка на сад
    tree_id INT,                              -- Ссылка на вид дерева
    quantity INT DEFAULT 1,                   -- Сколько таких деревьев в этом саду
    
    -- Составной первичный ключ: 
    -- в одном саду вид дерева указывается только один раз
    PRIMARY KEY (garden_id, tree_id),
    
    -- Внешние ключи (связывают таблицы):
    FOREIGN KEY (garden_id) REFERENCES gardens(id) ON DELETE CASCADE,
    FOREIGN KEY (tree_id) REFERENCES trees(id) ON DELETE CASCADE
);