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


-- =============================================
-- DATABASE CREATION
-- =============================================

CREATE DATABASE EmploymentBookDB;
GO

USE EmploymentBookDB;
GO


-- =============================================
-- 1. EMPLOYEE
-- =============================================

CREATE TABLE Employee
(
    employee_id INT PRIMARY KEY,
    full_name NVARCHAR(100) NOT NULL,
    birth_date DATE NOT NULL,
    passport_data NVARCHAR(50),
    address NVARCHAR(200),
    phone NVARCHAR(20),
    email NVARCHAR(100)
);
GO


-- =============================================
-- 2. EMPLOYER
-- =============================================

CREATE TABLE Employer
(
    employer_id INT PRIMARY KEY,
    name NVARCHAR(150) NOT NULL,
    tax_number NVARCHAR(20),
    address NVARCHAR(200),
    phone NVARCHAR(20)
);
GO


-- =============================================
-- 3. HR SPECIALIST
-- =============================================

CREATE TABLE HR_Specialist
(
    hr_specialist_id INT PRIMARY KEY,
    full_name NVARCHAR(100) NOT NULL,
    position NVARCHAR(100),
    phone NVARCHAR(20),
    email NVARCHAR(100),

    employer_id INT NOT NULL,

    CONSTRAINT FK_HR_Specialist_Employer
        FOREIGN KEY (employer_id)
        REFERENCES Employer(employer_id)
);
GO


-- =============================================
-- 4. EMPLOYMENT BOOK
-- =============================================

CREATE TABLE Employment_Book
(
    employment_book_id INT PRIMARY KEY,
    book_number NVARCHAR(30) NOT NULL,
    issue_date DATE NOT NULL,
    closing_date DATE NULL,
    status NVARCHAR(30),
    format NVARCHAR(30)
);
GO


-- =============================================
-- 5. EMPLOYEE - EMPLOYMENT BOOK
-- =============================================

CREATE TABLE Employee_Employment_Book
(
    employee_employment_book_id INT PRIMARY KEY,

    employee_id INT NOT NULL,
    employment_book_id INT NOT NULL,

    CONSTRAINT FK_Employee_EmploymentBook_Employee
        FOREIGN KEY (employee_id)
        REFERENCES Employee(employee_id),

    CONSTRAINT FK_Employee_EmploymentBook_Book
        FOREIGN KEY (employment_book_id)
        REFERENCES Employment_Book(employment_book_id)
);
GO


-- =============================================
-- 6. EMPLOYMENT RECORD
-- =============================================

CREATE TABLE Employment_Record
(
    record_id INT PRIMARY KEY,
    record_date DATE NOT NULL,
    record_type NVARCHAR(50),
    position NVARCHAR(100),
    department NVARCHAR(100),
    document_number NVARCHAR(50),

    employment_book_id INT NOT NULL,
    employer_id INT NOT NULL,

    CONSTRAINT FK_EmploymentRecord_EmploymentBook
        FOREIGN KEY (employment_book_id)
        REFERENCES Employment_Book(employment_book_id),

    CONSTRAINT FK_EmploymentRecord_Employer
        FOREIGN KEY (employer_id)
        REFERENCES Employer(employer_id)
);
GO