· 7 years ago · Dec 03, 2018, 12:14 PM
1CREATE TABLE IF NOT EXISTS Organization (
2 id INTEGER COMMENT 'Уникальный идентификатор' PRIMARY KEY AUTO_INCREMENT,
3 name VARCHAR(45) NOT NULL COMMENT 'Ðазвание',
4 full_name VARCHAR(45) NOT NULL COMMENT 'Полное название' unique,
5 inn VARCHAR(45) NOT NULL COMMENT 'ИÐÐ' unique,
6 kpp VARCHAR(45) NOT NULL COMMENT 'КПП' unique,
7 address VARCHAR(45) NOT NULL COMMENT 'ÐдреÑ' unique,
8 phone VARCHAR(45) COMMENT 'Телефон' unique,
9 is_active BOOLEAN NOT NULL
10);
11COMMENT ON TABLE OrganizationIS 'ОрганизациÑ';
12
13CREATE TABLE IF NOT EXISTS Office (
14 id INTEGER COMMENT 'Уникальный идентификатор' PRIMARY KEY AUTO_INCREMENT,
15 org_id INTEGER NOT NULL COMMENT 'Уникальный идентификатор организации',
16 name VARCHAR(45) NOT NULL COMMENT 'Ðазвание' unique,
17 phone VARCHAR(45) COMMENT 'Телефон',
18 address VARCHAR(45) NOT NULL COMMENT 'ÐдреÑ' unique,
19 is_active BOOLEAN
20);
21COMMENT ON TABLE Office IS 'ОфиÑ';
22
23CREATE TABLE IF NOT EXISTS Users (
24 id INTEGER COMMENT 'Уникальный идентификатор' PRIMARY KEY AUTO_INCREMENT,
25 office_id INTEGER NOT NULL COMMENT 'Уникальный идентификатор офиÑа',
26 first_name VARCHAR(45) NOT NULL COMMENT 'ИмÑ',
27 second_name VARCHAR(45) NOT NULL COMMENT 'ФамилиÑ',
28 last_name VARCHAR(45) NOT NULL COMMENT 'ОтчеÑтво',
29 position VARCHAR(45) NOT NULL COMMENT 'ПозициÑ',
30 docs_id INTEGER NOT NULL COMMENT 'Уникальный идентификатор документа',
31 doc_number VARCHAR(45) NOT NULL COMMENT 'Ðомер документа',
32 doc_date DATE COMMENT 'Дата Документа',
33 contries_id INTEGER NOT NULL COMMENT 'Уникальный идентификатор Ñтаны',
34 is_identified BOOLEAN
35);
36COMMENT ON TABLE Users IS 'Работники';
37
38CREATE TABLE IF NOT EXISTS Docs (
39 id INTEGER COMMENT 'Уникальный идентификатор' PRIMARY KEY AUTO_INCREMENT,
40 code VARCHAR(15) NOT NULL COMMENT 'Код' unique,
41 name VARCHAR(45) NOT NULL COMMENT 'Ðазвание' unique,
42);
43COMMENT ON TABLE Docs IS 'Документы';
44
45CREATE TABLE IF NOT EXISTS Contries (
46 id INTEGER COMMENT 'Уникальный идентификатор' PRIMARY KEY AUTO_INCREMENT,
47 name VARCHAR(45) NOT NULL COMMENT 'Ðазвание' unique,
48 code VARCHAR(15) NOT NULL COMMENT 'Код' unique
49);
50COMMENT ON TABLE ContriesIS 'Страны';
51
52CREATE INDEX UX_Organization_Full_Name ON Organization (full_name);
53CREATE INDEX UX_Organization_Inn ON Organization (inn);
54CREATE INDEX UX_Organization_Kpp ON Organization (kpp);
55CREATE INDEX UX_Organization_Address ON Organization (address);
56
57CREATE INDEX UX_Office_Name ON Office (name);
58CREATE INDEX UX_Office_Address ON Office (address);
59
60CREATE INDEX UX_Contries_Name ON Contries (name);
61CREATE INDEX UX_Contries_Code ON Contries (code);
62
63CREATE INDEX IX_Office_Org_Id ON Office (org_id);
64ALTER TABLE Office ADD FOREIGN KEY (org_id) REFERENCES Organization (id);
65
66CREATE INDEX IX_Users_Office_Id ON Users (office_id);
67ALTER TABLE Users ADD FOREIGN KEY (office_id) REFERENCES Office (id);
68CREATE INDEX IX_Users_Docs_Id ON Users (docs_id);
69ALTER TABLE Users ADD FOREIGN KEY (docs_id) REFERENCES Docs (id);
70CREATE INDEX IX_Users_Contries_Id ON Users (contries_id);
71ALTER TABLE Users ADD FOREIGN KEY (contries_id) REFERENCES Contries (id);