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


-- Таблица клиентов
CREATE TABLE client (
    id INT PRIMARY KEY,
    full_name VARCHAR(100) NOT NULL,
    phone VARCHAR(20)
);

-- Таблица автомобилей
CREATE TABLE car (
    id INT PRIMARY KEY,
    brand VARCHAR(50) NOT NULL,
    model VARCHAR(50) NOT NULL,
    license_plate VARCHAR(20),
    vin VARCHAR(50),
    client_id INT NOT NULL,
    FOREIGN KEY (client_id) REFERENCES client(id)
);

-- Таблица заказ-нарядов
CREATE TABLE repair_order (
    id INT PRIMARY KEY,
    date DATE NOT NULL,
    problem_description TEXT,
    status VARCHAR(50),
    car_id INT NOT NULL,
    FOREIGN KEY (car_id) REFERENCES car(id)
);

-- Таблица услуг
CREATE TABLE service (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    cost DECIMAL(10,2)
);

-- Таблица запчастей
CREATE TABLE part (
    id INT PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    price DECIMAL(10,2)
);

-- Связующая таблица "Заказ-Услуга" (many-to-many)
CREATE TABLE order_service (
    order_id INT NOT NULL,
    service_id INT NOT NULL,
    PRIMARY KEY (order_id, service_id),
    FOREIGN KEY (order_id) REFERENCES repair_order(id),
    FOREIGN KEY (service_id) REFERENCES service(id)
);

-- Связующая таблица "Заказ-Запчасть" (many-to-many)
CREATE TABLE order_part (
    order_id INT NOT NULL,
    part_id INT NOT NULL,
    quantity INT NOT NULL DEFAULT 1,
    PRIMARY KEY (order_id, part_id),
    FOREIGN KEY (order_id) REFERENCES repair_order(id),
    FOREIGN KEY (part_id) REFERENCES part(id)
);