feat(backend): implement equipments entities and modify db
This commit is contained in:
@@ -55,21 +55,49 @@ INSERT INTO lesson_types (name) VALUES
|
||||
('Лабораторная работа')
|
||||
ON CONFLICT (name) DO NOTHING;
|
||||
|
||||
-- Оборудование
|
||||
CREATE TABLE IF NOT EXISTS equipments (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name VARCHAR(50) UNIQUE NOT NULL
|
||||
);
|
||||
|
||||
INSERT INTO equipments (name) VALUES
|
||||
('Проектор'),
|
||||
('ПК'),
|
||||
('Лаборатория'),
|
||||
('Интерактивная доска')
|
||||
ON CONFLICT (name) DO NOTHING;
|
||||
|
||||
-- Аудитории
|
||||
CREATE TABLE IF NOT EXISTS classrooms (
|
||||
id BIGSERIAL PRIMARY KEY,
|
||||
name VARCHAR(50) UNIQUE NOT NULL,
|
||||
capacity INT NOT NULL,
|
||||
is_available BOOLEAN DEFAULT TRUE,
|
||||
hardware_tags VARCHAR(255) -- например: "Проектор, ПК, Лаборатория"
|
||||
is_available BOOLEAN DEFAULT TRUE
|
||||
);
|
||||
|
||||
INSERT INTO classrooms (name, capacity, hardware_tags) VALUES
|
||||
('101 Ленинская', 120, 'Проектор, Доска'),
|
||||
('202 IT Lab', 20, 'ПК, Проектор, Лаборатория'),
|
||||
('303 Обычная', 30, 'Доска')
|
||||
INSERT INTO classrooms (name, capacity) VALUES
|
||||
('101 Ленинская', 120),
|
||||
('202 IT Lab', 20),
|
||||
('303 Обычная', 30)
|
||||
ON CONFLICT (name) DO NOTHING;
|
||||
|
||||
-- Привязка оборудования к аудиториям (Many-to-Many)
|
||||
CREATE TABLE IF NOT EXISTS classroom_equipments (
|
||||
classroom_id BIGINT NOT NULL REFERENCES classrooms(id) ON DELETE CASCADE,
|
||||
equipment_id BIGINT NOT NULL REFERENCES equipments(id) ON DELETE CASCADE,
|
||||
PRIMARY KEY (classroom_id, equipment_id)
|
||||
);
|
||||
|
||||
-- Заполнение привязок оборудования (на основе ID базовых данных)
|
||||
-- '101 Ленинская' -> Проектор (1), Интерактивная доска (4)
|
||||
INSERT INTO classroom_equipments (classroom_id, equipment_id) VALUES
|
||||
(1, 1), (1, 4),
|
||||
-- '202 IT Lab' -> ПК (2), Проектор (1), Лаборатория (3)
|
||||
(2, 2), (2, 1), (2, 3),
|
||||
-- '303 Обычная' -> ничего
|
||||
ON CONFLICT DO NOTHING;
|
||||
|
||||
-- ==========================================
|
||||
-- Связи для преподавателей и студентов
|
||||
-- ==========================================
|
||||
|
||||
Reference in New Issue
Block a user