op13-cp-3/db.sql
2026-02-11 14:57:06 +03:00

138 lines
3.5 KiB
SQL
Raw Permalink Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

CREATE TABLE roles (
role_id SERIAL PRIMARY KEY,
role_name VARCHAR(50) NOT NULL
);
CREATE TABLE users (
user_id SERIAL PRIMARY KEY,
login VARCHAR(50) UNIQUE NOT NULL,
password VARCHAR(100) NOT NULL,
full_name VARCHAR(150) NOT NULL,
role_id INTEGER REFERENCES roles(role_id)
);
CREATE TABLE categories (
category_id SERIAL PRIMARY KEY,
category_name VARCHAR(100) NOT NULL
);
CREATE TABLE manufacturers (
manufacturer_id SERIAL PRIMARY KEY,
manufacturer_name VARCHAR(100) NOT NULL
);
CREATE TABLE suppliers (
supplier_id SERIAL PRIMARY KEY,
supplier_name VARCHAR(100) NOT NULL
);
CREATE TABLE age_groups (
age_group_id SERIAL PRIMARY KEY,
age_label VARCHAR(20) NOT NULL
);
CREATE TABLE toys (
toy_id SERIAL PRIMARY KEY,
toy_name VARCHAR(150) NOT NULL,
category_id INTEGER REFERENCES categories(category_id),
manufacturer_id INTEGER REFERENCES manufacturers(manufacturer_id),
price NUMERIC(10,2) NOT NULL,
discount INTEGER DEFAULT 0,
image VARCHAR(255)
);
CREATE TABLE toy_age_groups (
toy_id INTEGER REFERENCES toys(toy_id),
age_group_id INTEGER REFERENCES age_groups(age_group_id),
PRIMARY KEY (toy_id, age_group_id)
);
CREATE TABLE toy_suppliers (
toy_id INTEGER REFERENCES toys(toy_id),
supplier_id INTEGER REFERENCES suppliers(supplier_id),
PRIMARY KEY (toy_id, supplier_id)
);
CREATE TABLE stock (
toy_id INTEGER PRIMARY KEY REFERENCES toys(toy_id),
quantity INTEGER NOT NULL
);
INSERT INTO roles (role_name) VALUES
('Гость'),
('Покупатель'),
('Сотрудник'),
('Администратор');
INSERT INTO users (login, password, full_name, role_id) VALUES
('guest','guest','Гость',1),
('anna','111','Иванова Анна Сергеевна',2),
('oleg','222','Кузнецов Олег Петрович',2),
('manager','333','Смирнова Мария Андреевна',3),
('admin','admin','Сидоров Максим Игоревич',4);
INSERT INTO categories (category_name) VALUES
('Мягкие игрушки'),
('Конструкторы'),
('Развивающие игрушки'),
('Настольные игры'),
('Роботы');
INSERT INTO manufacturers (manufacturer_name) VALUES
('Lego'),
('Hasbro'),
('Mattel'),
('PlaySmart'),
('Fisher Price');
INSERT INTO suppliers (supplier_name) VALUES
('ООО Радуга'),
('ИП Смайл'),('ToyImport'),
('KidsWorld');
INSERT INTO age_groups (age_label) VALUES
('0-1'),
('1-3'),
('3-5'),
('5-7'),
('7+');
INSERT INTO toys (toy_name, category_id, manufacturer_id, price, discount, image) VALUES
('Плюшевый мишка',1,4,1500,10,'bear.png'),
('Конструктор City',2,1,4200,25,'city.png'),
('Развивающий куб',3,5,2300,0,NULL),
('Робот трансформер',5,2,5200,30,'robot.png'),
('Настольная игра Лото',4,3,1800,5,NULL),
('Кукла классическая',1,3,2700,15,'doll.png'),
('Конструктор Junior',2,1,3100,0,NULL),
('Музыкальный телефон',3,5,2100,20,NULL),
('Робот на пульте',5,2,6400,35,'rc.png'),
('Игра Мемори',4,3,1600,0,NULL);
INSERT INTO toy_age_groups (toy_id, age_group_id) VALUES
(1,2),(1,3),
(2,4),(2,5),
(3,2),
(4,4),(4,5),
(5,3),(5,4),
(6,3),(6,4),
(7,2),(7,3),
(8,2),
(9,5),
(10,3),(10,4);
INSERT INTO toy_suppliers (toy_id, supplier_id) VALUES
(1,1),(1,2),
(2,3),
(3,1),(3,4),
(4,2),(4,3),
(5,1),
(6,4),
(7,3),
(8,2),(8,4),
(9,3),
(10,1),(10,2);
INSERT INTO stock (toy_id, quantity) VALUES
(1,12),(2,5),(3,0),(4,7),(5,10),
(6,4),(7,8),(8,0),(9,3),(10,15);