Загрузка данных
-- =====================================================================
-- 5 БАЗ ДАННЫХ — ЕДИНЫЙ СКРИПТ (MySQL Workbench)
-- СУБД: MySQL 8.x, InnoDB, utf8mb4
-- В каждой БД ≥6 таблиц, ≥10 строк в каждой, явные именованные FK
-- =====================================================================
-- #####################################################################
-- # 1) КАРШЕРИНГ #
-- #####################################################################
DROP DATABASE IF EXISTS carsharing_db;
CREATE DATABASE carsharing_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE carsharing_db;
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
phone VARCHAR(30),
email VARCHAR(100),
license_no VARCHAR(30),
birth_date DATE,
registered_at DATE,
status VARCHAR(20) DEFAULT 'active',
UNIQUE KEY uq_user_phone (phone),
UNIQUE KEY uq_user_license (license_no)
) ENGINE=InnoDB;
CREATE TABLE cars (
car_id INT AUTO_INCREMENT PRIMARY KEY,
brand VARCHAR(50),
model VARCHAR(50),
plate VARCHAR(15),
year INT,
fuel_type VARCHAR(20),
transmission VARCHAR(20),
status VARCHAR(20) DEFAULT 'available',
mileage INT DEFAULT 0,
UNIQUE KEY uq_car_plate (plate)
) ENGINE=InnoDB;
CREATE TABLE tariffs (
tariff_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(50),
price_per_min DECIMAL(8,2),
price_per_km DECIMAL(8,2),
day_rate DECIMAL(10,2),
description VARCHAR(200),
UNIQUE KEY uq_tariff_name (name)
) ENGINE=InnoDB;
CREATE TABLE parking_locations (
location_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
address VARCHAR(200),
city VARCHAR(60),
latitude DECIMAL(9,6),
longitude DECIMAL(9,6)
) ENGINE=InnoDB;
CREATE TABLE rentals (
rental_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL,
car_id INT NOT NULL,
tariff_id INT NOT NULL,
start_location_id INT,
end_location_id INT,
start_time DATETIME,
end_time DATETIME,
total_cost DECIMAL(10,2),
status VARCHAR(20) DEFAULT 'active',
CONSTRAINT fk_rental_user FOREIGN KEY (user_id) REFERENCES users(user_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_rental_car FOREIGN KEY (car_id) REFERENCES cars(car_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_rental_tariff FOREIGN KEY (tariff_id) REFERENCES tariffs(tariff_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_rental_start FOREIGN KEY (start_location_id) REFERENCES parking_locations(location_id)
ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_rental_end FOREIGN KEY (end_location_id) REFERENCES parking_locations(location_id)
ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE payments (
payment_id INT AUTO_INCREMENT PRIMARY KEY,
rental_id INT NOT NULL,
amount DECIMAL(10,2),
method VARCHAR(30),
paid_at DATETIME,
status VARCHAR(20) DEFAULT 'paid',
CONSTRAINT fk_payment_rental FOREIGN KEY (rental_id) REFERENCES rentals(rental_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE maintenance (
maint_id INT AUTO_INCREMENT PRIMARY KEY,
car_id INT NOT NULL,
maint_date DATE,
type VARCHAR(50),
cost DECIMAL(10,2),
description VARCHAR(200),
CONSTRAINT fk_maint_car FOREIGN KEY (car_id) REFERENCES cars(car_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO users (first_name,last_name,phone,email,license_no,birth_date,registered_at,status) VALUES
('Иван','Петров','+79001111111','petrov@mail.ru','4501 111111','1990-05-12','2023-01-10','active'),
('Анна','Сидорова','+79002222222','sidorova@mail.ru','4502 222222','1992-08-23','2023-02-15','active'),
('Олег','Кузнецов','+79003333333','kuznetsov@mail.ru','4503 333333','1988-02-14','2023-03-20','active'),
('Мария','Иванова','+79004444444','ivanova@mail.ru','4504 444444','1995-11-03','2023-04-05','active'),
('Дмитрий','Смирнов','+79005555555','smirnov@mail.ru','4505 555555','1985-07-19','2023-05-11','blocked'),
('Елена','Попова','+79006666666','popova@mail.ru','4506 666666','1998-01-25','2023-06-18','active'),
('Сергей','Васильев','+79007777777','vasiliev@mail.ru','4507 777777','2000-03-11','2023-07-22','active'),
('Ольга','Новикова','+79008888888','novikova@mail.ru','4508 888888','1993-09-30','2023-08-30','active'),
('Павел','Морозов','+79009999999','morozov@mail.ru','4509 999999','1980-12-05','2023-09-14','active'),
('Ирина','Зайцева','+79000000000','zaytseva@mail.ru','4510 000000','1997-06-18','2023-10-01','active');
INSERT INTO cars (brand,model,plate,year,fuel_type,transmission,status,mileage) VALUES
('Kia','Rio','А001АА',2022,'petrol','auto','available',15000),
('Hyundai','Solaris','А002АА',2021,'petrol','auto','available',35000),
('Skoda','Octavia','А003АА',2023,'petrol','auto','rented',8000),
('Toyota','Camry','А004АА',2020,'petrol','auto','available',60000),
('BMW','320i','А005АА',2022,'petrol','auto','maintenance',20000),
('Mercedes','C200','А006АА',2021,'diesel','auto','available',45000),
('Lada','Vesta','А007АА',2023,'petrol','manual','available',5000),
('Renault','Logan','А008АА',2020,'petrol','manual','available',80000),
('Volkswagen','Polo','А009АА',2022,'petrol','auto','available',25000),
('Nissan','Qashqai','А010АА',2021,'petrol','auto','rented',40000);
INSERT INTO tariffs (name,price_per_min,price_per_km,day_rate,description) VALUES
('Минута',9.00,0.00,NULL,'Поминутная оплата'),
('Стандарт',7.00,8.00,NULL,'Поминутно + км'),
('Эконом',5.00,6.00,NULL,'Дешёвый тариф'),
('Сутки',0.00,0.00,2500.00,'Аренда на сутки'),
('Выходные',0.00,0.00,3500.00,'Пт-Вс'),
('Неделя',0.00,0.00,14000.00,'7 дней'),
('Комфорт',12.00,12.00,NULL,'Бизнес-класс'),
('Доставка',15.00,0.00,NULL,'Доставка авто'),
('Корпоратив',6.00,5.00,NULL,'Для юрлиц'),
('Пробная',1.00,0.00,NULL,'Первая поездка');
INSERT INTO parking_locations (name,address,city,latitude,longitude) VALUES
('Парк-Москва-1','Тверская 1','Москва',55.755826,37.617300),
('Парк-Москва-2','Арбат 10','Москва',55.752000,37.592000),
('Парк-СПб-1','Невский 5','СПб',59.934280,30.335098),
('Парк-СПб-2','Дворцовая 1','СПб',59.939100,30.315700),
('Парк-Казань','Баумана 10','Казань',55.788700,49.122100),
('Парк-Екб','Мира 3','Екб',56.838900,60.605700),
('Парк-Нск','Ленина 20','Нск',55.030200,82.920400),
('Парк-Сочи','Курортный 5','Сочи',43.585500,39.723100),
('Парк-Ростов','Садовая 12','Ростов',47.222500,39.718700),
('Парк-Уфа','Ленина 8','Уфа',54.738800,55.972100);
INSERT INTO rentals (user_id,car_id,tariff_id,start_location_id,end_location_id,start_time,end_time,total_cost,status) VALUES
(1,1,1,1,2,'2024-05-01 08:00','2024-05-01 09:30',810.00,'completed'),
(2,2,2,2,3,'2024-05-02 10:00','2024-05-02 12:00',1200.00,'completed'),
(3,3,3,3,4,'2024-05-03 14:00','2024-05-03 16:30',1500.00,'completed'),
(4,4,4,4,5,'2024-05-04 09:00','2024-05-04 11:00',700.00,'completed'),
(5,5,5,5,6,'2024-05-05 12:00','2024-05-05 18:00',3500.00,'completed'),
(6,6,6,6,7,'2024-05-06 07:00','2024-05-06 09:00',600.00,'completed'),
(7,7,7,7,8,'2024-05-07 15:00','2024-05-07 17:00',800.00,'completed'),
(8,8,8,8,9,'2024-05-08 11:00','2024-05-08 13:00',450.00,'completed'),
(9,9,9,9,10,'2024-05-09 16:00',NULL,0.00,'active'),
(10,10,10,10,1,'2024-05-10 19:00',NULL,0.00,'active');
INSERT INTO payments (rental_id,amount,method,paid_at,status) VALUES
(1,810.00,'card','2024-05-01 09:35','paid'),
(2,1200.00,'card','2024-05-02 12:05','paid'),
(3,1500.00,'sbp','2024-05-03 16:35','paid'),
(4,700.00,'card','2024-05-04 11:05','paid'),
(5,3500.00,'card','2024-05-05 18:05','paid'),
(6,600.00,'sbp','2024-05-06 09:05','paid'),
(7,800.00,'card','2024-05-07 17:05','paid'),
(8,450.00,'cash','2024-05-08 13:05','paid'),
(9,0.00,'card',NULL,'pending'),
(10,0.00,'card',NULL,'pending');
INSERT INTO maintenance (car_id,maint_date,type,cost,description) VALUES
(1,'2024-04-01','ТО',5000,'Плановое ТО'),
(2,'2024-04-05','Замена масла',3000,'Масло 5W-30'),
(3,'2024-04-10','Шины',15000,'Летняя резина'),
(4,'2024-04-15','Тормоза',8000,'Колодки'),
(5,'2024-04-20','Кузов',25000,'Покраска'),
(6,'2024-04-25','ТО',6000,'Плановое'),
(7,'2024-05-01','Стекло',12000,'Замена лобового'),
(8,'2024-05-05','Двигатель',20000,'Диагностика'),
(9,'2024-05-10','Электрика',4000,'Лампы, предохранители'),
(10,'2024-05-15','ТО',5500,'Плановое');
-- #####################################################################
-- # 2) ОБМЕН ВАЛЮТЫ #
-- #####################################################################
DROP DATABASE IF EXISTS exchange_db;
CREATE DATABASE exchange_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE exchange_db;
CREATE TABLE currencies (
currency_id INT AUTO_INCREMENT PRIMARY KEY,
code VARCHAR(3),
name VARCHAR(60),
symbol VARCHAR(5),
UNIQUE KEY uq_currency_code (code)
) ENGINE=InnoDB;
CREATE TABLE branches (
branch_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
city VARCHAR(60),
address VARCHAR(200),
phone VARCHAR(30)
) ENGINE=InnoDB;
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
branch_id INT NOT NULL,
first_name VARCHAR(50),
last_name VARCHAR(50),
position VARCHAR(50),
phone VARCHAR(30),
hired_at DATE,
CONSTRAINT fk_emp_branch FOREIGN KEY (branch_id) REFERENCES branches(branch_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE clients (
client_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
phone VARCHAR(30),
email VARCHAR(100),
passport VARCHAR(20),
type VARCHAR(20) DEFAULT 'individual',
UNIQUE KEY uq_client_passport (passport)
) ENGINE=InnoDB;
CREATE TABLE rates (
rate_id INT AUTO_INCREMENT PRIMARY KEY,
currency_id INT NOT NULL,
rate_date DATE,
buy_rate DECIMAL(12,4),
sell_rate DECIMAL(12,4),
cbr_rate DECIMAL(12,4),
CONSTRAINT fk_rate_currency FOREIGN KEY (currency_id) REFERENCES currencies(currency_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE operations (
operation_id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
employee_id INT NOT NULL,
branch_id INT NOT NULL,
from_currency INT NOT NULL,
to_currency INT NOT NULL,
amount_from DECIMAL(14,2),
amount_to DECIMAL(14,2),
rate_used DECIMAL(12,4),
commission DECIMAL(10,2),
op_date DATETIME,
CONSTRAINT fk_op_client FOREIGN KEY (client_id) REFERENCES clients(client_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_op_employee FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_op_branch FOREIGN KEY (branch_id) REFERENCES branches(branch_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_op_from FOREIGN KEY (from_currency) REFERENCES currencies(currency_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_op_to FOREIGN KEY (to_currency) REFERENCES currencies(currency_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE commissions (
commission_id INT AUTO_INCREMENT PRIMARY KEY,
operation_id INT NOT NULL,
type VARCHAR(30),
percent DECIMAL(5,2),
fixed_amount DECIMAL(10,2),
CONSTRAINT fk_comm_op FOREIGN KEY (operation_id) REFERENCES operations(operation_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO currencies (code,name,symbol) VALUES
('RUB','Российский рубль','₽'),
('USD','Доллар США','$'),
('EUR','Евро','€'),
('GBP','Фунт стерлингов','£'),
('CNY','Китайский юань','¥'),
('JPY','Японская йена','¥'),
('CHF','Швейцарский франк','Fr'),
('TRY','Турецкая лира','₺'),
('KZT','Казахстанский тенге','₸'),
('BYN','Белорусский рубль','Br');
INSERT INTO branches (name,city,address,phone) VALUES
('Центральный','Москва','Тверская 1','+7(495)100-10-10'),
('Арбатский','Москва','Арбат 10','+7(495)200-20-20'),
('Невский','СПб','Невский 5','+7(812)300-30-30'),
('Казанский','Казань','Баумана 10','+7(843)400-40-40'),
('Уральский','Екб','Мира 3','+7(343)500-50-50'),
('Сибирский','Нск','Ленина 20','+7(383)600-60-60'),
('Южный','Сочи','Курортный 5','+7(862)700-70-70'),
('Ростовский','Ростов','Садовая 12','+7(863)800-80-80'),
('Башкирский','Уфа','Ленина 8','+7(347)900-90-90'),
('Волжский','Самара','Победы 4','+7(846)111-11-11');
INSERT INTO employees (branch_id,first_name,last_name,position,phone,hired_at) VALUES
(1,'Иван','Петров','Кассир','+79001111111','2020-09-01'),
(1,'Анна','Сидорова','Управляющий','+79002222222','2018-09-01'),
(2,'Олег','Кузнецов','Кассир','+79003333333','2021-09-01'),
(3,'Мария','Иванова','Кассир','+79004444444','2019-09-01'),
(4,'Дмитрий','Смирнов','Управляющий','+79005555555','2017-09-01'),
(5,'Елена','Попова','Кассир','+79006666666','2022-09-01'),
(6,'Сергей','Васильев','Кассир','+79007777777','2019-09-01'),
(7,'Ольга','Новикова','Управляющий','+79008888888','2016-09-01'),
(8,'Павел','Морозов','Кассир','+79009999999','2020-09-01'),
(9,'Ирина','Зайцева','Кассир','+79000000000','2021-09-01');
INSERT INTO clients (first_name,last_name,phone,email,passport,type) VALUES
('Алексей','Александров','+79111111111','a@mail.ru','4501 111111','individual'),
('Екатерина','Борисова','+79112222222','b@mail.ru','4502 222222','individual'),
('Сергей','Волков','+79113333333','v@mail.ru','4503 333333','individual'),
('Ольга','Григорьева','+79114444444','g@mail.ru','4504 444444','individual'),
('ООО Ромашка','-','+74951001010','romashka@mail.ru','7701234567','company'),
('Татьяна','Егорова','+79116666666','e@mail.ru','4506 666666','individual'),
('Игорь','Жуков','+79117777777','j@mail.ru','4507 777777','individual'),
('ООО Лютик','-','+74952002020','lutik@mail.ru','7702345678','company'),
('Роман','Ильин','+79119999999','i@mail.ru','4509 999999','individual'),
('Анастасия','Крылова','+79110000000','k@mail.ru','4510 000000','individual');
INSERT INTO rates (currency_id,rate_date,buy_rate,sell_rate,cbr_rate) VALUES
(2,'2024-05-01',90.5000,92.0000,91.2000),
(3,'2024-05-01',98.5000,100.5000,99.3000),
(4,'2024-05-01',114.0000,117.0000,115.5000),
(5,'2024-05-01',12.5000,13.2000,12.8000),
(6,'2024-05-01',0.5900,0.6300,0.6100),
(7,'2024-05-01',101.0000,104.0000,102.5000),
(8,'2024-05-01',2.7000,2.9000,2.8000),
(9,'2024-05-01',0.1950,0.2100,0.2020),
(10,'2024-05-01',27.5000,29.0000,28.2000),
(2,'2024-05-02',90.7000,92.3000,91.5000);
INSERT INTO operations (client_id,employee_id,branch_id,from_currency,to_currency,amount_from,amount_to,rate_used,commission,op_date) VALUES
(1,1,1,2,1,1000,90500,90.50,452.50,'2024-05-01 10:00'),
(2,3,2,3,1,500,49250,98.50,246.25,'2024-05-01 11:00'),
(3,4,3,1,2,92000,1000,92.00,460.00,'2024-05-01 12:00'),
(4,5,4,4,1,200,22800,114.00,114.00,'2024-05-01 13:00'),
(5,6,5,1,3,100500,1000,100.50,502.50,'2024-05-01 14:00'),
(6,7,6,5,1,10000,125000,12.50,625.00,'2024-05-01 15:00'),
(7,8,7,6,1,100000,59000,0.59,295.00,'2024-05-01 16:00'),
(8,9,8,1,7,104000,1000,104.00,520.00,'2024-05-01 17:00'),
(9,10,9,8,1,1000,2700,2.70,13.50,'2024-05-01 18:00'),
(10,1,1,9,1,100000,19500,0.195,97.50,'2024-05-01 19:00');
INSERT INTO commissions (operation_id,type,percent,fixed_amount) VALUES
(1,'percent',0.50,0.00),
(2,'percent',0.50,0.00),
(3,'percent',0.50,0.00),
(4,'percent',0.50,0.00),
(5,'percent',0.50,0.00),
(6,'percent',0.50,0.00),
(7,'percent',0.50,0.00),
(8,'percent',0.50,0.00),
(9,'percent',0.50,0.00),
(10,'fixed',0.00,100.00);
-- #####################################################################
-- # 3) СТРОИТЕЛЬНАЯ КОМПАНИЯ #
-- #####################################################################
DROP DATABASE IF EXISTS construction_db;
CREATE DATABASE construction_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE construction_db;
CREATE TABLE clients (
client_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
type VARCHAR(20) DEFAULT 'individual',
phone VARCHAR(30),
email VARCHAR(100),
address VARCHAR(200),
inn VARCHAR(20)
) ENGINE=InnoDB;
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
position VARCHAR(50),
specialization VARCHAR(80),
phone VARCHAR(30),
hired_at DATE,
salary DECIMAL(10,2)
) ENGINE=InnoDB;
CREATE TABLE brigades (
brigade_id INT AUTO_INCREMENT PRIMARY KEY,
foreman_id INT NOT NULL,
name VARCHAR(80),
specialization VARCHAR(80),
CONSTRAINT fk_brig_foreman FOREIGN KEY (foreman_id) REFERENCES employees(employee_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE brigade_members (
id INT AUTO_INCREMENT PRIMARY KEY,
brigade_id INT NOT NULL,
employee_id INT NOT NULL,
role VARCHAR(50),
CONSTRAINT fk_bm_brigade FOREIGN KEY (brigade_id) REFERENCES brigades(brigade_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_bm_employee FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
ON DELETE CASCADE ON UPDATE CASCADE,
UNIQUE KEY uq_brigade_employee (brigade_id, employee_id)
) ENGINE=InnoDB;
CREATE TABLE projects (
project_id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
brigade_id INT,
name VARCHAR(150),
address VARCHAR(200),
start_date DATE,
end_date DATE,
budget DECIMAL(14,2),
status VARCHAR(20) DEFAULT 'planned',
CONSTRAINT fk_proj_client FOREIGN KEY (client_id) REFERENCES clients(client_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_proj_brigade FOREIGN KEY (brigade_id) REFERENCES brigades(brigade_id)
ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE suppliers (
supplier_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
contact VARCHAR(100),
phone VARCHAR(30),
email VARCHAR(100),
UNIQUE KEY uq_supplier_name (name)
) ENGINE=InnoDB;
CREATE TABLE materials (
material_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
unit VARCHAR(20),
price DECIMAL(10,2),
supplier_id INT,
CONSTRAINT fk_mat_supplier FOREIGN KEY (supplier_id) REFERENCES suppliers(supplier_id)
ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE supplies (
supply_id INT AUTO_INCREMENT PRIMARY KEY,
project_id INT NOT NULL,
material_id INT NOT NULL,
supplier_id INT NOT NULL,
quantity DECIMAL(10,2),
total_cost DECIMAL(12,2),
supply_date DATE,
CONSTRAINT fk_sup_project FOREIGN KEY (project_id) REFERENCES projects(project_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_sup_material FOREIGN KEY (material_id) REFERENCES materials(material_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_sup_supplier FOREIGN KEY (supplier_id) REFERENCES suppliers(supplier_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO clients (name,type,phone,email,address,inn) VALUES
('ООО СтройИнвест','company','+74951001010','si@mail.ru','Москва, Тверская 1','7701234567'),
('Иванов И.И.','individual','+79001111111','ivanov@mail.ru','Москва, Ленина 1',NULL),
('ООО Мегаполис','company','+74952002020','megapolis@mail.ru','СПб, Невский 5','7802345678'),
('Петров П.П.','individual','+79002222222','petrov@mail.ru','СПб, Мира 2',NULL),
('ООО Аквамарин','company','+74953003030','aqua@mail.ru','Казань, Баумана 10','7703456789'),
('Сидорова А.С.','individual','+79003333333','sidorova@mail.ru','Казань, Мира 3',NULL),
('ООО Гелиос','company','+74954004040','gelios@mail.ru','Екб, Мира 3','7704567890'),
('Кузнецов О.В.','individual','+79004444444','kuznetsov@mail.ru','Нск, Ленина 20',NULL),
('ООО Титан','company','+74955005050','titan@mail.ru','Сочи, Курортный 5','7705678901'),
('Смирнова М.А.','individual','+79005555555','smirnova@mail.ru','Ростов, Садовая 12',NULL);
INSERT INTO employees (first_name,last_name,position,specialization,phone,hired_at,salary) VALUES
('Иван','Петров','Прораб','Каменные работы','+79001111111','2015-09-01',80000),
('Анна','Сидорова','Инженер','Проектирование','+79002222222','2018-09-01',70000),
('Олег','Кузнецов','Бригадир','Электрика','+79003333333','2016-09-01',65000),
('Мария','Иванова','Сметчик','Сметы','+79004444444','2019-09-01',60000),
('Дмитрий','Смирнов','Каменщик','Кладка','+79005555555','2014-09-01',55000),
('Елена','Попова','Архитектор','Проектирование','+79006666666','2020-09-01',75000),
('Сергей','Васильев','Плотник','Дерево','+79007777777','2013-09-01',50000),
('Ольга','Новикова','Маляр','Отделка','+79008888888','2021-09-01',45000),
('Павел','Морозов','Сварщик','Металл','+79009999999','2017-09-01',55000),
('Ирина','Зайцева','Дизайнер','Дизайн','+79000000000','2019-09-01',65000);
INSERT INTO brigades (foreman_id,name,specialization) VALUES
(1,'Бригада №1','Общестроительные'),
(3,'Бригада №2','Электромонтаж'),
(5,'Бригада №3','Каменные работы'),
(7,'Бригада №4','Деревообработка'),
(8,'Бригада №5','Отделка'),
(9,'Бригада №6','Сварка'),
(10,'Бригада №7','Дизайн'),
(2,'Бригада №8','Проектирование'),
(4,'Бригада №9','Сметы'),
(6,'Бригада №10','Архитектура');
INSERT INTO brigade_members (brigade_id,employee_id,role) VALUES
(1,1,'Прораб'),(1,5,'Каменщик'),
(2,3,'Бригадир'),(2,9,'Сварщик'),
(3,5,'Каменщик'),(3,7,'Плотник'),
(4,7,'Бригадир'),(4,8,'Маляр'),
(5,8,'Бригадир'),(5,10,'Дизайнер'),
(6,9,'Бригадир'),(6,1,'Прораб'),
(7,10,'Дизайнер'),(7,6,'Архитектор'),
(8,2,'Инженер'),(8,6,'Архитектор'),
(9,4,'Сметчик'),(9,2,'Инженер'),
(10,6,'Архитектор'),(10,10,'Дизайнер');
INSERT INTO projects (client_id,brigade_id,name,address,start_date,end_date,budget,status) VALUES
(1,1,'ЖК Тверской','Москва, Тверская 10','2024-01-01','2025-12-31',50000000,'in_progress'),
(2,3,'Дом на Ленина','Москва, Ленина 5','2024-02-01','2024-12-31',5000000,'in_progress'),
(3,2,'Офис Невский','СПб, Невский 20','2024-03-01','2025-06-30',15000000,'in_progress'),
(4,4,'Дача Петрова','СПб, Пригород 1','2024-04-01','2024-10-31',3000000,'planned'),
(5,5,'ТЦ Аквамарин','Казань, Баумана 30','2024-05-01','2026-05-01',80000000,'planned'),
(6,6,'Квартира Сидоровой','Казань, Мира 5','2024-06-01','2024-11-30',2000000,'planned'),
(7,7,'Склад Гелиос','Екб, Мира 50','2024-07-01','2025-03-31',12000000,'planned'),
(8,8,'Гараж Кузнецова','Нск, Ленина 100','2024-08-01','2024-12-31',1500000,'planned'),
(9,9,'Отель Титан','Сочи, Курортный 50','2024-09-01','2026-09-01',120000000,'planned'),
(10,10,'Квартира Смирновой','Ростов, Садовая 50','2024-10-01','2025-04-30',2500000,'planned');
INSERT INTO suppliers (name,contact,phone,email) VALUES
('ООО СтройМат','Иванов','+79001111111','stroymat@mail.ru'),
('ООО Цемент+','Петров','+79002222222','cement@mail.ru'),
('ООО КирпичТорг','Сидоров','+79003333333','kirpich@mail.ru'),
('ООО ЛесПром','Кузнецов','+79004444444','lesprom@mail.ru'),
('ООО МеталлТорг','Смирнов','+79005555555','metall@mail.ru'),
('ООО ЭлектроСнаб','Попова','+79006666666','electro@mail.ru'),
('ООО Сантехника','Васильев','+79007777777','santeh@mail.ru'),
('ООО Отделка+','Новикова','+79008888888','otdelka@mail.ru'),
('ООО Краска','Морозов','+79009999999','kraska@mail.ru'),
('ООО Инструмент','Зайцева','+79000000000','instrument@mail.ru');
INSERT INTO materials (name,unit,price,supplier_id) VALUES
('Цемент М500','кг',15.00,2),
('Кирпич красный','шт',25.00,3),
('Песок','м3',500.00,1),
('Доска 50х150','м3',12000.00,4),
('Арматура 12мм','м',65.00,5),
('Кабель ВВГ','м',80.00,6),
('Труба ПП','м',120.00,7),
('Штукатурка','кг',45.00,8),
('Краска белая','л',350.00,9),
('Дрель','шт',5000.00,10);
INSERT INTO supplies (project_id,material_id,supplier_id,quantity,total_cost,supply_date) VALUES
(1,1,2,5000,75000,'2024-01-05'),
(1,2,3,10000,250000,'2024-01-10'),
(2,3,1,50,25000,'2024-02-05'),
(3,4,4,20,240000,'2024-03-10'),
(4,5,5,500,32500,'2024-04-15'),
(5,6,6,2000,160000,'2024-05-20'),
(6,7,7,200,24000,'2024-06-25'),
(7,8,8,500,22500,'2024-07-30'),
(8,9,9,100,35000,'2024-08-15'),
(9,10,10,10,50000,'2024-09-20');
-- #####################################################################
-- # 4) ХИМЧИСТКА #
-- #####################################################################
DROP DATABASE IF EXISTS drycleaning_db;
CREATE DATABASE drycleaning_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE drycleaning_db;
CREATE TABLE clients (
client_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
phone VARCHAR(30),
email VARCHAR(100),
address VARCHAR(200),
UNIQUE KEY uq_client_phone (phone)
) ENGINE=InnoDB;
CREATE TABLE services (
service_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
category VARCHAR(50),
price DECIMAL(10,2),
duration_hours INT,
description VARCHAR(200)
) ENGINE=InnoDB;
CREATE TABLE branches (
branch_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
address VARCHAR(200),
city VARCHAR(60),
phone VARCHAR(30)
) ENGINE=InnoDB;
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
branch_id INT NOT NULL,
first_name VARCHAR(50),
last_name VARCHAR(50),
position VARCHAR(50),
phone VARCHAR(30),
hired_at DATE,
CONSTRAINT fk_emp_branch FOREIGN KEY (branch_id) REFERENCES branches(branch_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE orders (
order_id INT AUTO_INCREMENT PRIMARY KEY,
client_id INT NOT NULL,
employee_id INT NOT NULL,
branch_id INT NOT NULL,
order_date DATETIME,
ready_date DATETIME,
status VARCHAR(20) DEFAULT 'new',
total_cost DECIMAL(10,2),
CONSTRAINT fk_ord_client FOREIGN KEY (client_id) REFERENCES clients(client_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_ord_employee FOREIGN KEY (employee_id) REFERENCES employees(employee_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_ord_branch FOREIGN KEY (branch_id) REFERENCES branches(branch_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE order_items (
item_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT NOT NULL,
service_id INT NOT NULL,
quantity INT DEFAULT 1,
price DECIMAL(10,2),
notes VARCHAR(200),
CONSTRAINT fk_oi_order FOREIGN KEY (order_id) REFERENCES orders(order_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_oi_service FOREIGN KEY (service_id) REFERENCES services(service_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE payments (
payment_id INT AUTO_INCREMENT PRIMARY KEY,
order_id INT NOT NULL,
amount DECIMAL(10,2),
method VARCHAR(30),
paid_at DATETIME,
status VARCHAR(20) DEFAULT 'paid',
CONSTRAINT fk_pay_order FOREIGN KEY (order_id) REFERENCES orders(order_id)
ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO clients (first_name,last_name,phone,email,address) VALUES
('Иван','Петров','+79001111111','petrov@mail.ru','ул. Ленина 1'),
('Анна','Сидорова','+79002222222','sidorova@mail.ru','ул. Мира 2'),
('Олег','Кузнецов','+79003333333','kuznetsov@mail.ru','ул. Кирова 3'),
('Мария','Иванова','+79004444444','ivanova@mail.ru','ул. Пушкина 4'),
('Дмитрий','Смирнов','+79005555555','smirnov@mail.ru','пр. Свободный 5'),
('Елена','Попова','+79006666666','popova@mail.ru','ул. Гагарина 6'),
('Сергей','Васильев','+79007777777','vasiliev@mail.ru','ул. Садовая 7'),
('Ольга','Новикова','+79008888888','novikova@mail.ru','ул. Советская 8'),
('Павел','Морозов','+79009999999','morozov@mail.ru','ул. Победы 9'),
('Ирина','Зайцева','+79000000000','zaytseva@mail.ru','ул. Партизан 10');
INSERT INTO services (name,category,price,duration_hours,description) VALUES
('Химчистка пальто','Верхняя одежда',1500.00,48,'Сухая чистка'),
('Стирка рубашки','Рубашки',300.00,24,'Аква-стирка'),
('Химчистка платья','Платья',1200.00,48,'Деликатная'),
('Химчистка костюма','Костюмы',1800.00,48,'Пара: пиджак+брюки'),
('Чистка ковра','Ковры',2500.00,72,'За м²'),
('Чистка пуховика','Верхняя одежда',2000.00,72,'Сухая'),
('Глажка','Услуги',200.00,2,'За единицу'),
('Ремонт одежды','Услуги',500.00,24,'Мелкий ремонт'),
('Химчистка штор','Шторы',1800.00,72,'За комплект'),
('Удаление пятен','Услуги',700.00,12,'Локальная');
INSERT INTO branches (name,address,city,phone) VALUES
('Центральная','Тверская 1','Москва','+7(495)100-10-10'),
('Арбатская','Арбат 10','Москва','+7(495)200-20-20'),
('Невская','Невский 5','СПб','+7(812)300-30-30'),
('Казанская','Баумана 10','Казань','+7(843)400-40-40'),
('Уральская','Мира 3','Екб','+7(343)500-50-50'),
('Сибирская','Ленина 20','Нск','+7(383)600-60-60'),
('Южная','Курортный 5','Сочи','+7(862)700-70-70'),
('Ростовская','Садовая 12','Ростов','+7(863)800-80-80'),
('Башкирская','Ленина 8','Уфа','+7(347)900-90-90'),
('Волжская','Победы 4','Самара','+7(846)111-11-11');
INSERT INTO employees (branch_id,first_name,last_name,position,phone,hired_at) VALUES
(1,'Иван','Петров','Приёмщик','+79001111111','2020-09-01'),
(1,'Анна','Сидорова','Технолог','+79002222222','2018-09-01'),
(2,'Олег','Кузнецов','Приёмщик','+79003333333','2021-09-01'),
(3,'Мария','Иванова','Приёмщик','+79004444444','2019-09-01'),
(4,'Дмитрий','Смирнов','Управляющий','+79005555555','2017-09-01'),
(5,'Елена','Попова','Приёмщик','+79006666666','2022-09-01'),
(6,'Сергей','Васильев','Приёмщик','+79007777777','2019-09-01'),
(7,'Ольга','Новикова','Технолог','+79008888888','2016-09-01'),
(8,'Павел','Морозов','Приёмщик','+79009999999','2020-09-01'),
(9,'Ирина','Зайцева','Приёмщик','+79000000000','2021-09-01');
INSERT INTO orders (client_id,employee_id,branch_id,order_date,ready_date,status,total_cost) VALUES
(1,1,1,'2024-06-01 10:00','2024-06-03 10:00','done',1500.00),
(2,2,1,'2024-06-02 11:00','2024-06-03 11:00','done',600.00),
(3,3,2,'2024-06-03 12:00','2024-06-05 12:00','done',1200.00),
(4,4,3,'2024-06-04 13:00','2024-06-06 13:00','ready',1800.00),
(5,5,4,'2024-06-05 14:00','2024-06-07 14:00','ready',2500.00),
(6,6,5,'2024-06-06 15:00','2024-06-08 15:00','in_progress',2000.00),
(7,7,6,'2024-06-07 16:00','2024-06-08 16:00','in_progress',500.00),
(8,8,7,'2024-06-08 17:00','2024-06-09 17:00','in_progress',700.00),
(9,9,8,'2024-06-09 18:00','2024-06-10 18:00','new',1800.00),
(10,10,9,'2024-06-10 19:00','2024-06-11 19:00','new',500.00);
INSERT INTO order_items (order_id,service_id,quantity,price,notes) VALUES
(1,1,1,1500.00,'Пальто мужское'),
(2,2,2,300.00,'Две рубашки'),
(3,3,1,1200.00,'Платье вечернее'),
(4,4,1,1800.00,'Костюм'),
(5,5,5,2500.00,'Ковёр 5 м²'),
(6,6,1,2000.00,'Пуховик'),
(7,8,1,500.00,'Замена молнии'),
(8,10,1,700.00,'Пятно на блузке'),
(9,9,1,1800.00,'Комплект штор'),
(10,7,1,200.00,'Глажка костюма');
INSERT INTO payments (order_id,amount,method,paid_at,status) VALUES
(1,1500.00,'card','2024-06-01 10:05','paid'),
(2,600.00,'cash','2024-06-02 11:05','paid'),
(3,1200.00,'card','2024-06-03 12:05','paid'),
(4,1800.00,'card','2024-06-04 13:05','paid'),
(5,2500.00,'sbp','2024-06-05 14:05','paid'),
(6,2000.00,'card','2024-06-06 15:05','paid'),
(7,500.00,'cash','2024-06-07 16:05','paid'),
(8,700.00,'card','2024-06-08 17:05','paid'),
(9,0.00,'card',NULL,'pending'),
(10,0.00,'card',NULL,'pending');
-- #####################################################################
-- # 5) МУЗЕЙ #
-- #####################################################################
DROP DATABASE IF EXISTS museum_db;
CREATE DATABASE museum_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
USE museum_db;
CREATE TABLE halls (
hall_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(80),
floor INT,
area_sqm DECIMAL(8,2),
theme VARCHAR(100)
) ENGINE=InnoDB;
CREATE TABLE employees (
employee_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
position VARCHAR(50),
specialization VARCHAR(80),
phone VARCHAR(30),
hired_at DATE
) ENGINE=InnoDB;
CREATE TABLE exhibits (
exhibit_id INT AUTO_INCREMENT PRIMARY KEY,
hall_id INT NOT NULL,
name VARCHAR(150),
era VARCHAR(80),
origin VARCHAR(100),
year_created INT,
value_estimate DECIMAL(14,2),
description VARCHAR(300),
CONSTRAINT fk_exhibit_hall FOREIGN KEY (hall_id) REFERENCES halls(hall_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE exhibitions (
exhibition_id INT AUTO_INCREMENT PRIMARY KEY,
hall_id INT NOT NULL,
curator_id INT NOT NULL,
name VARCHAR(150),
start_date DATE,
end_date DATE,
ticket_price DECIMAL(10,2),
CONSTRAINT fk_exh_hall FOREIGN KEY (hall_id) REFERENCES halls(hall_id)
ON DELETE RESTRICT ON UPDATE CASCADE,
CONSTRAINT fk_exh_curator FOREIGN KEY (curator_id) REFERENCES employees(employee_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE visitors (
visitor_id INT AUTO_INCREMENT PRIMARY KEY,
first_name VARCHAR(50),
last_name VARCHAR(50),
phone VARCHAR(30),
email VARCHAR(100),
birth_date DATE,
category VARCHAR(20) DEFAULT 'adult'
) ENGINE=InnoDB;
CREATE TABLE excursions (
excursion_id INT AUTO_INCREMENT PRIMARY KEY,
exhibition_id INT NOT NULL,
guide_id INT NOT NULL,
excursion_date DATETIME,
max_people INT,
price DECIMAL(10,2),
CONSTRAINT fk_exc_exhibition FOREIGN KEY (exhibition_id) REFERENCES exhibitions(exhibition_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_exc_guide FOREIGN KEY (guide_id) REFERENCES employees(employee_id)
ON DELETE RESTRICT ON UPDATE CASCADE
) ENGINE=InnoDB;
CREATE TABLE tickets (
ticket_id INT AUTO_INCREMENT PRIMARY KEY,
visitor_id INT NOT NULL,
excursion_id INT,
exhibition_id INT,
issue_date DATE,
price DECIMAL(10,2),
ticket_type VARCHAR(20),
CONSTRAINT fk_ticket_visitor FOREIGN KEY (visitor_id) REFERENCES visitors(visitor_id)
ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT fk_ticket_excursion FOREIGN KEY (excursion_id) REFERENCES excursions(excursion_id)
ON DELETE SET NULL ON UPDATE CASCADE,
CONSTRAINT fk_ticket_exhibition FOREIGN KEY (exhibition_id) REFERENCES exhibitions(exhibition_id)
ON DELETE SET NULL ON UPDATE CASCADE
) ENGINE=InnoDB;
INSERT INTO halls (name,floor,area_sqm,theme) VALUES
('Зал Древностей',1,200.00,'Античность'),
('Зал Живописи',1,300.00,'Живопись'),
('Зал Скульптур',2,250.00,'Скульптура'),
('Зал Средневековья',2,180.00,'Средневековье'),
('Зал Возрождения',2,220.00,'Ренессанс'),
('Зал Импрессионизма',3,180.00,'Импрессионизм'),
('Зал Современного',3,250.00,'Современное'),
('Зал Нумизматики',1,120.00,'Монеты'),
('Зал Оружия',1,150.00,'Оружие'),
('Зал Египта',2,220.00,'Древний Египет');
INSERT INTO employees (first_name,last_name,position,specialization,phone,hired_at) VALUES
('Иван','Петров','Куратор','Живопись','+79001111111','2015-09-01'),
('Анна','Сидорова','Куратор','Скульптура','+79002222222','2018-09-01'),
('Олег','Кузнецов','Экскурсовод','Античность','+79003333333','2016-09-01'),
('Мария','Иванова','Экскурсовод','Средневековье','+79004444444','2019-09-01'),
('Дмитрий','Смирнов','Реставратор','Живопись','+79005555555','2014-09-01'),
('Елена','Попова','Экскурсовод','Ренессанс','+79006666666','2020-09-01'),
('Сергей','Васильев','Куратор','Оружие','+79007777777','2013-09-01'),
('Ольга','Новикова','Экскурсовод','Импрессионизм','+79008888888','2021-09-01'),
('Павел','Морозов','Хранитель','Нумизматика','+79009999999','2017-09-01'),
('Ирина','Зайцева','Реставратор','Скульптура','+79000000000','2019-09-01');
INSERT INTO exhibits (hall_id,name,era,origin,year_created,value_estimate,description) VALUES
(1,'Амфора греческая','Античность','Греция',-500,500000,'Керамика'),
(1,'Статуя Аполлона','Античность','Рим',100,2000000,'Мрамор'),
(2,'Портрет неизвестного','18 век','Россия',1750,800000,'Холст, масло'),
(2,'Пейзаж','19 век','Россия',1850,1200000,'Холст, масло'),
(3,'Бюст Наполеона','18 век','Франция',1800,600000,'Мрамор'),
(4,'Меч рыцарский','Средневековье','Европа',1350,1500000,'Сталь'),
(5,'Мадонна с младенцем','Возрождение','Италия',1500,5000000,'Холст, масло'),
(6,'Пейзаж Моне','Импрессионизм','Франция',1890,8000000,'Холст, масло'),
(7,'Инсталляция','Современное','Россия',2020,100000,'Смешанная техника'),
(10,'Саркофаг','Древний Египет','Египет',-2000,3000000,'Камень');
INSERT INTO exhibitions (hall_id,curator_id,name,start_date,end_date,ticket_price) VALUES
(1,1,'Античное наследие','2024-01-01','2024-06-30',500.00),
(2,1,'Русская живопись','2024-02-01','2024-07-31',600.00),
(3,2,'Скульптуры мира','2024-03-01','2024-08-31',550.00),
(4,7,'Рыцарский зал','2024-04-01','2024-09-30',700.00),
(5,1,'Эпоха Возрождения','2024-05-01','2024-10-31',800.00),
(6,8,'Импрессионизм','2024-06-01','2024-11-30',900.00),
(7,8,'Современное искусство','2024-07-01','2024-12-31',400.00),
(10,3,'Древний Египет','2024-08-01','2025-01-31',650.00),
(1,7,'Оружие веков','2024-09-01','2025-02-28',550.00),
(3,2,'Античные скульптуры','2024-10-01','2025-03-31',600.00);
INSERT INTO visitors (first_name,last_name,phone,email,birth_date,category) VALUES
('Алексей','Александров','+79111111111','a@mail.ru','1990-05-12','adult'),
('Екатерина','Борисова','+79112222222','b@mail.ru','1992-08-23','adult'),
('Сергей','Волков','+79113333333','v@mail.ru','1988-02-14','adult'),
('Ольга','Григорьева','+79114444444','g@mail.ru','1995-11-03','student'),
('Николай','Дмитриев','+79115555555','d@mail.ru','1985-07-19','adult'),
('Татьяна','Егорова','+79116666666','e@mail.ru','1998-01-25','student'),
('Игорь','Жуков','+79117777777','j@mail.ru','2000-03-11','student'),
('Ксения','Зимина','+79118888888','z@mail.ru','2010-09-30','child'),
('Роман','Ильин','+79119999999','i@mail.ru','1980-12-05','adult'),
('Анастасия','Крылова','+79110000000','k@mail.ru','1997-06-18','pensioner');
INSERT INTO excursions (exhibition_id,guide_id,excursion_date,max_people,price) VALUES
(1,3,'2024-01-15 11:00',20,300.00),
(2,1,'2024-02-15 12:00',20,400.00),
(3,4,'2024-03-15 13:00',15,350.00),
(4,5,'2024-04-15 14:00',25,500.00),
(5,6,'2024-05-15 15:00',20,450.00),
(6,8,'2024-06-15 16:00',30,600.00),
(7,8,'2024-07-15 17:00',20,300.00),
(8,3,'2024-08-15 18:00',15,400.00),
(9,7,'2024-09-15 19:00',20,350.00),
(10,2,'2024-10-15 20:00',20,400.00);
INSERT INTO tickets (visitor_id,excursion_id,exhibition_id,issue_date,price,ticket_type) VALUES
(1,1,1,'2024-01-15',300.00,'excursion'),
(2,2,2,'2024-02-15',400.00,'excursion'),
(3,3,3,'2024-03-15',350.00,'excursion'),
(4,4,4,'2024-04-15',500.00,'excursion'),
(5,5,5,'2024-05-15',450.00,'excursion'),
(6,6,6,'2024-06-15',600.00,'excursion'),
(7,7,7,'2024-07-15',300.00,'excursion'),
(8,8,8,'2024-08-15',400.00,'excursion'),
(9,9,9,'2024-09-15',350.00,'excursion'),
(10,10,10,'2024-10-15',400.00,'excursion');
-- =====================================================================
-- ГОТОВО. Для ER-диаграмм: Database → Reverse Engineer (Ctrl+R)
-- → выбрать нужную БД → галочка "Place imported objects on a diagram"
-- =====================================================================