Репозиторий инфраструктуры: https://github.com/zaboal/organization.git.
59 lines
No EOL
4.5 KiB
SQL
59 lines
No EOL
4.5 KiB
SQL
-- 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 -- Дата конца трудоустройста
|
||
); |