-- 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 -- Дата конца трудоустройста );