34 lines
1.8 KiB
MySQL
34 lines
1.8 KiB
MySQL
|
|
-- Скрипт для создания таблицы vacancies и связанных объектов
|
||
|
|
-- Выполните этот скрипт, если таблица vacancies отсутствует в базе данных
|
||
|
|
|
||
|
|
-- Создание типа vacancy_status (если не существует)
|
||
|
|
DO $$
|
||
|
|
BEGIN
|
||
|
|
IF NOT EXISTS (SELECT 1 FROM pg_type WHERE typname = 'vacancy_status') THEN
|
||
|
|
CREATE TYPE vacancy_status AS ENUM ('urgent', 'active', 'paused', 'closed');
|
||
|
|
END IF;
|
||
|
|
END$$;
|
||
|
|
|
||
|
|
-- Создание таблицы vacancies
|
||
|
|
CREATE TABLE IF NOT EXISTS vacancies (
|
||
|
|
id VARCHAR(50) PRIMARY KEY,
|
||
|
|
position TEXT NOT NULL, -- Название должности
|
||
|
|
department TEXT NOT NULL, -- Отдел
|
||
|
|
status vacancy_status NOT NULL DEFAULT 'active',
|
||
|
|
salary TEXT, -- Вилка зарплаты (например, "55 000 - 65 000 ₽")
|
||
|
|
description TEXT NOT NULL, -- Описание вакансии
|
||
|
|
requirements TEXT, -- Требования к кандидату
|
||
|
|
conditions TEXT, -- Условия работы
|
||
|
|
responsibilities TEXT, -- Обязанности
|
||
|
|
posted_date DATE NOT NULL DEFAULT CURRENT_DATE, -- Дата публикации
|
||
|
|
closing_date DATE, -- Дата закрытия вакансии
|
||
|
|
applicants_count INTEGER DEFAULT 0, -- Количество откликов
|
||
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
||
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
||
|
|
);
|
||
|
|
|
||
|
|
-- Создание индексов
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_vacancies_status ON vacancies(status);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_vacancies_department ON vacancies(department);
|
||
|
|
CREATE INDEX IF NOT EXISTS idx_vacancies_posted_date ON vacancies(posted_date DESC);
|