commit a0c61964821da5cc8000011da03498969746b5ce Author: Зажигин Богдан Алексеевич Date: Mon Dec 19 21:21:47 2022 +0300 Инициирующий коммит Скопировал код с моего ноута, он, собственно, везде и используется. diff --git a/organizational_structure/organizational_structure.sql b/organizational_structure/organizational_structure.sql new file mode 100644 index 0000000..4ebd5d1 --- /dev/null +++ b/organizational_structure/organizational_structure.sql @@ -0,0 +1,58 @@ +-- SQL Схема организационной структуры +/* Создал Зажигин Богдан Алексеевич под СУБД + SQLite версии 3.32.3. В основном, идентификатор + таблиц — rowid. */ + + + +CREATE TABLE channels ( -- Каналы общения организации + ch_participation_uri VARCHAR UNIQUE NOT NULL -- Универсальный идентификатор ресурса (канала общения) + /* С помощью функции subsrt() можно будет определить, + является ли канал общения групповым чатом по протоколу + Telegram, или комнатой в некотором доме Санкт-Петебурга. */ +); + +CREATE TABLE projects ( -- Проекты организации + proj_name VARCHAR UNIQUE NOT NULL, -- Название проекта + proj_ch_rowid INT UNIQUE -- Идентификатор канала общения участников проекта. + REFERENCES channels (rowid), + proj_website VARCHAR UNIQUE -- Копроративный сайт проекта +); + +CREATE TABLE divisions ( -- Структурные подразделения организации + div_name VARCHAR NOT NULL UNIQUE, -- Название подразделения + div_ch_rowid INT NOT NULL UNIQUE -- Идентификатор канала общения для участников подразделения. + REFERENCES channels (rowid), + div_proj_rowid INT DEFAULT NULL -- Идентификатор проекта, над которым работает подразделение. + REFERENCES projects (rowid), + div_status BOOLEAN DEFAULT NULL, -- Статус подразделения + /* 0 — ликвидировано + 1 — активно */ + div_admin VARCHAR DEFAULT NULL -- Контроллирующие подразделение + REFERENCES divisions (rowid) +); + + +CREATE TABLE people ( -- Зарегистрированные в организации люди, стали клиентами или рабочими + per_name VARCHAR NOT NULL, -- Полное имя человека + per_tel VARCHAR(11) UNIQUE, -- Личный телефонный номер человека + per_email VARCHAR UNIQUE, -- Личная электропочта человека + per_tin INT(12) UNIQUE, -- Идентификационный номер налогоплательщика (человека) + per_snils INT(9) UNIQUE, -- Страховой номер индивидуального лицевого счёта человека + per_dob DATE, -- Дата рождения человека + per_gender BOOLEAN -- Половые признаки человека + /* 0 — мужские + 1 — женские */ +); + +CREATE TABLE employments ( -- Трудоустройство персонала организации + emp_per_rowid INT NOT NULL -- Идентификатор рабочего трудоустройста + REFERENCES people (rowid), + emp_div_rowid INT NOT NULL -- Подразделение работы рабочего + REFERENCES divisions (rowid), + emp_okpdtr VARCHAR(18) NOT NULL, -- Код информационного блока ОКПДТР рабочего + emp_beginning DATE NOT NULL, -- Дата начала трудоустройста + emp_ch_rowid VARCHAR -- Копроративная электропочта рабочего данного трудоустройста + REFERENCES channels (rowid), + emp_ending DATE DEFAULT NULL -- Дата конца трудоустройста +); \ No newline at end of file diff --git a/organizational_structure/sample_data.sql b/organizational_structure/sample_data.sql new file mode 100644 index 0000000..2987839 --- /dev/null +++ b/organizational_structure/sample_data.sql @@ -0,0 +1,24 @@ +INSERT INTO communication_channels VALUES +(1, "tg://join?invite=EBIdIqMZb3lhNWYy"); +INSERT INTO communication_channels VALUES +(2, "tg://join?invite=I3jgOBd5vYg4Zjhi"); + +INSERT INTO projects VALUES +(1, "Портал проектов", "https://site.zaboal.ru/", 1); +INSERT INTO projects VALUES +(2, "Сервис аутсорсинга администрирования сайтов", "https://site.aas.zaboal.ru", 2); +INSERT INTO projects VALUES +(3, "Поощрительная рассылка", "https://site.club.zaboal.ru", NULL); + +INSERT INTO divisions VALUES +(1, "Проектное бюро", 1, 2, 1); + +INSERT INTO people VALUES +(1, "Зажигин Богдан Алексеевич", "+7 992 195-51-27", "za.boal@vk.com", NULL, NULL, 15012007, 0, "59.831453, 30.327681"); +INSERT INTO people VALUES +(2, "Хисуми", NULL, "hisumimegu.one", NULL, NULL, NULL, NULL); + +INSERT INTO employment_cycles VALUES +(1, 1, 1, 2149501121004, 21102022, NULL, "zaboal@zaboal.ru"); +INSERT INTO employment_cycles VALUES +(2, 2, 1, 4006782252204, 21102022, NULL, "hisumi@zaboal.ru"); \ No newline at end of file diff --git a/organizational_structure/sqlite_pragmas.sql b/organizational_structure/sqlite_pragmas.sql new file mode 100644 index 0000000..2090a7c --- /dev/null +++ b/organizational_structure/sqlite_pragmas.sql @@ -0,0 +1 @@ +PRAGMA foreign_keys = ON; \ No newline at end of file diff --git a/organizational_structure/telegram_users/telegram_users.sql b/organizational_structure/telegram_users/telegram_users.sql new file mode 100644 index 0000000..befbcc4 --- /dev/null +++ b/organizational_structure/telegram_users/telegram_users.sql @@ -0,0 +1,5 @@ +CREATE TABLE users ( + user_per_rowid INT NOT NULL + REFERENCES people (rowid), + user_id INT NOT NULL +); \ No newline at end of file diff --git a/vacancies.sql b/vacancies.sql new file mode 100644 index 0000000..4fe317d --- /dev/null +++ b/vacancies.sql @@ -0,0 +1,7 @@ +CREATE TABLE vacancies ( + vac_div_rowid INT NOT NULL -- Подразделение открывшее вакансию + REFERENCES divisions (rowid), + vac_okpdtr VARCHAR(18) NOT NULL, -- Код информационного блока ОКПДТР вакансии + vac_per_rowid INT -- Человек, проходящий собеседование по ваканасии + REFERENCES people (rowid) +); \ No newline at end of file