Files
GeneralDatabase/init.sql
T
2026-06-29 15:55:17 +03:00

92 lines
2.1 KiB
PL/PgSQL

BEGIN;
CREATE TYPE master_spec AS ENUM ('работа1', 'работа2', 'и тд');
CREATE TABLE "user" (
id UUID PRIMARY KEY,
surname TEXT NOT NULL,
Name TEXT NOT NULL,
lastname TEXT,
avatar TEXT,
bday DATE,
login TEXT,
password TEXT,
email TEXT,
phone TEXT
);
CREATE TABLE master (
id UUID PRIMARY KEY,
surname TEXT NOT NULL,
name TEXT NOT NULL,
lastname TEXT,
avatar TEXT,
bday TEXT,
spec MASTER_SPEC NOT NULL,
login TEXT,
password TEXT,
email TEXT,
phone TEXT
);
CREATE TABLE service (
id UUID PRIMARY KEY,
spec MASTER_SPEC,
name TEXT NOT NULL,
description TEXT
);
CREATE TABLE part (
id UUID PRIMARY KEY,
name TEXT NOT NULL,
description TEXT,
stock INT NOT NULL
);
CREATE TABLE vehicle (
id UUID PRIMARY KEY,
owner_id UUID NOT NULL REFERENCES "user" (id) ON DELETE CASCADE,
gos_num TEXT NOT NULL,
mark TEXT,
model TEXT,
vin TEXT
);
CREATE TABLE "order" (
id UUID PRIMARY KEY,
vehicle_id UUID NOT NULL REFERENCES vehicle (id) ON DELETE CASCADE,
date_time TIMESTAMP
);
CREATE TABLE part_list (
id UUID PRIMARY KEY,
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
part_id UUID NOT NULL REFERENCES part (id) ON DELETE CASCADE
);
CREATE TABLE service_list (
id UUID PRIMARY KEY,
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
service_id UUID NOT NULL REFERENCES service (id) ON DELETE CASCADE,
master_id UUID NOT NULL REFERENCES master (id) ON DELETE CASCADE
);
CREATE TABLE receipt (
id UUID PRIMARY KEY,
order_id UUID NOT NULL REFERENCES "order" (id) ON DELETE CASCADE,
status BOOL NOT NULL
);
CREATE TABLE service_cart (
id UUID PRIMARY KEY,
user_id UUID NOT NULL REFERENCES "user" (id) ON DELETE CASCADE,
service_id UUID NOT NULL REFERENCES service (id) ON DELETE CASCADE
);
CREATE TABLE part_cart (
id UUID PRIMARY KEY,
user_id UUID NOT NULL REFERENCES "user" (id) ON DELETE CASCADE,
part_id UUID NOT NULL REFERENCES part (id) ON DELETE CASCADE
);
END;