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


```sql
CREATE DATABASE IF NOT EXISTS chudo_obuv;
USE chudo_obuv;
CREATE TABLE users (id INT AUTO_INCREMENT PRIMARY KEY, login VARCHAR(50) UNIQUE NOT NULL, last_name VARCHAR(50) NOT NULL, first_name VARCHAR(50) NOT NULL, middle_name VARCHAR(50), role ENUM('admin', 'manager', 'user') NOT NULL DEFAULT 'user');
CREATE TABLE categories (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL);
CREATE TABLE subcategories (id INT AUTO_INCREMENT PRIMARY KEY, name VARCHAR(100) NOT NULL, category_id INT NOT NULL, FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE);
CREATE TABLE products (id INT AUTO_INCREMENT PRIMARY KEY, category_id INT NOT NULL, subcategory_id INT NOT NULL, brand VARCHAR(100) NOT NULL, name VARCHAR(200) NOT NULL, image_url VARCHAR(500), composition TEXT, description TEXT, price DECIMAL(10, 2) NOT NULL, FOREIGN KEY (category_id) REFERENCES categories(id) ON DELETE CASCADE, FOREIGN KEY (subcategory_id) REFERENCES subcategories(id) ON DELETE CASCADE);
CREATE TABLE sizes (id INT AUTO_INCREMENT PRIMARY KEY, size_value VARCHAR(20) NOT NULL UNIQUE);
CREATE TABLE product_items (id INT AUTO_INCREMENT PRIMARY KEY, product_id INT NOT NULL, size_id INT NOT NULL, quantity INT NOT NULL DEFAULT 0, FOREIGN KEY (product_id) REFERENCES products(id) ON DELETE CASCADE, FOREIGN KEY (size_id) REFERENCES sizes(id) ON DELETE CASCADE, UNIQUE KEY unique_product_size (product_id, size_id));
CREATE TABLE orders (id INT AUTO_INCREMENT PRIMARY KEY, order_date DATETIME DEFAULT CURRENT_TIMESTAMP, user_id INT NOT NULL, client_last_name VARCHAR(50) NOT NULL, client_first_name VARCHAR(50) NOT NULL, client_middle_name VARCHAR(50), total_amount DECIMAL(10, 2) DEFAULT 0, status ENUM('new', 'processing', 'completed', 'cancelled') DEFAULT 'new', FOREIGN KEY (user_id) REFERENCES users(id) ON DELETE CASCADE);
CREATE TABLE order_items (id INT AUTO_INCREMENT PRIMARY KEY, order_id INT NOT NULL, product_item_id INT NOT NULL, quantity INT NOT NULL, price_at_order DECIMAL(10, 2) NOT NULL, FOREIGN KEY (order_id) REFERENCES orders(id) ON DELETE CASCADE, FOREIGN KEY (product_item_id) REFERENCES product_items(id) ON DELETE CASCADE);
INSERT INTO categories (name) VALUES ('obuv'), ('aksessuary');
INSERT INTO subcategories (name, category_id) VALUES ('krossovki', 1), ('botinki', 1), ('tufli', 1), ('sandali', 1);
INSERT INTO sizes (size_value) VALUES ('35'), ('36'), ('37'), ('38'), ('39'), ('40'), ('41'), ('42'), ('43'), ('44'), ('45'), ('46');
INSERT INTO users (login, last_name, first_name, middle_name, role) VALUES ('admin', 'administratorov', 'admin', 'adminovich', 'admin'), ('manager1', 'menedzherov', 'ivan', 'ivanovich', 'manager'), ('user1', 'petrov', 'petr', 'petrovich', 'user'), ('user2', 'sidorova', 'anna', 'ivanovna', 'user');
INSERT INTO products (category_id, subcategory_id, brand, name, image_url, composition, description, price) VALUES (1, 1, 'nike', 'air max 270', '/images/nike_air_max_270.jpg', 'tekstil, sintetika', 'stilnye krossovki s maksimalnoy amortizatsiey', 12000.00), (1, 2, 'timberland', 'botinki klassicheskie', '/images/timberland_classic.jpg', 'naturalnaya kozha', 'klassicheskie botinki dlya povsednevnoy noski', 15000.00);
INSERT INTO product_items (product_id, size_id, quantity) VALUES (1, 4, 10), (1, 5, 15), (1, 6, 20), (2, 6, 12), (2, 7, 8);
INSERT INTO orders (user_id, client_last_name, client_first_name, client_middle_name, total_amount, status) VALUES (3, 'ivanov', 'sergey', 'alekseevich', 12000.00, 'new');
INSERT INTO order_items (order_id, product_item_id, quantity, price_at_order) VALUES (1, 1, 1, 12000.00);
```