CREATE DATABASE IF NOT EXISTS parking;
USE parking;
CREATE TABLE клиенты (
ID_клиента INT PRIMARY KEY,
фамилия VARCHAR(50) NOT NULL,
имя VARCHAR(50) NOT NULL,
отчество VARCHAR(50)
);
CREATE TABLE контакты (
ID_контакта INT PRIMARY KEY,
ID_клиента INT NOT NULL,
телефон VARCHAR(20),
email VARCHAR(100),
FOREIGN KEY (ID_клиента) REFERENCES клиенты(ID_клиента)
);
CREATE TABLE машины (
ID_машины INT PRIMARY KEY,
госномер VARCHAR(15) NOT NULL UNIQUE,
ID_клиента INT NOT NULL,
FOREIGN KEY (ID_клиента) REFERENCES клиенты(ID_клиента)
);
CREATE TABLE тарифы (
ID_тарифа INT PRIMARY KEY,
тип_места VARCHAR(30) NOT NULL UNIQUE,
цена_за_сутки DECIMAL(8,2) NOT NULL
);
CREATE TABLE места (
ID_места INT PRIMARY KEY,
номер_места VARCHAR(10) NOT NULL,
ID_тарифа INT NOT NULL,
FOREIGN KEY (ID_тарифа) REFERENCES тарифы(ID_тарифа)
);
CREATE TABLE договоры (
ID_договора INT PRIMARY KEY,
ID_места INT NOT NULL,
ID_машины INT NOT NULL,
дата_заключения DATE NOT NULL,
дата_начала DATE NOT NULL,
дата_окончания DATE NOT NULL,
стоимость DECIMAL(10,2) NOT NULL,
статус VARCHAR(20) NOT NULL,
FOREIGN KEY (ID_места) REFERENCES места(ID_места),
FOREIGN KEY (ID_машины) REFERENCES машины(ID_машины)
);
CREATE TABLE сотрудники (
ID_сотрудника INT PRIMARY KEY,
фамилия VARCHAR(50) NOT NULL,
имя VARCHAR(50) NOT NULL,
отчество VARCHAR(50),
должность VARCHAR(50) NOT NULL,
смена VARCHAR(20)
);
CREATE TABLE оплаты (
ID_оплаты INT PRIMARY KEY,
ID_договора INT NOT NULL,
ID_сотрудника INT,
сумма DECIMAL(10,2) NOT NULL,
дата_оплаты DATETIME NOT NULL,
способ_оплаты VARCHAR(20) NOT NULL,
FOREIGN KEY (ID_договора) REFERENCES договоры(ID_договора),
FOREIGN KEY (ID_сотрудника) REFERENCES сотрудники(ID_сотрудника)
);
CREATE TABLE пропуска (
ID_пропуска INT PRIMARY KEY,
ID_договора INT NOT NULL UNIQUE,
номер_карты VARCHAR(30) NOT NULL UNIQUE,
статус VARCHAR(20) NOT NULL,
FOREIGN KEY (ID_договора) REFERENCES договоры(ID_договора)
);