Поясняк (1230875), страница 8
Текст из файла (страница 8)
Таблица 2.23 – Структура таблицы ORG
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_ORG | INTEGER, TOID |
| ID организации | |
| ORG | VARCHAR (25) |
| Организация |
Таблица 2.24 – GROUP – содержит название всех групп института.
Таблица 2.24 – Структура таблицы GROUP
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_GR | INTEGER, TOID |
| ID группы | |
| NAME_GROUP | VARCHAR (20) |
| Группа |
Таблица 2.25 – OTDEL – содержит название всех отделов института.
Таблица 2.25 – Структура таблицы OTDEL
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_OT | INTEGER, TOID |
| ID отдела | |
| OT | VARCHAR (20) |
| Отдел | ||
| RASCH | VARCHAR (30) |
| Расшифровка |
Таблица 2.26 – DOLGNOST – содержит название всех должностей в институте.
Таблица 2.26 – Структура таблицы DOLJNOST
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_DOLJN | INTEGER, TOID |
| ID должности | |
| NAME_DOLJN | VARCHAR (25) |
| Должность |
Таблица 2.27 – RAZDEL – включает в себя наименование всех разделов в проектах.
Таблица 2.27 – Структура таблицы RAZDEL
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_RAZ | INTEGER, TOID |
| ID раздела | |
| RAZDEL | VARCHAR (20) |
| Раздел |
Таблица 2.28 – STAD – содержит название всех стадий в проектах.
Таблица 2.28 – Структура таблицы STAD
| PK | FK | Поле | Тип | NN | Описание |
|
| ID_STAD | INTEGER, TOID |
| ID стадии | |
| NAME_STAD | VARCHAR (5) |
| Стадия |
Таблица 2.29 - RABOTA - включает в себя данные о работе над объектами.
Таблица 2.29 - Структура таблицы RABOTA
| PK | FK | Поле | Тип | NN | Описание | ||
|
| ID_WRK | INTEGER, TOID |
| ID записи | |||
| DATE_ | DATE |
| Дата | ||||
Продолжение таблицы 2.29
| PK | FK | Поле | Тип | NN | Описание | ||
| TIME_ | TIME |
| Время | ||||
| DATI_ | TIMESTAMP |
| Дата и время | ||||
|
| SOTR_ | INTEGER, TOID |
| ID сотрудника | |||
|
| SHIFR_ | INTEGER, TOID |
| ID объекта | |||
|
| STAD_ | INTEGER, TOID |
| ID стадии | |||
| ZATR_TIME | VARCHAR (2) |
| Затраченное время | ||||
| WORK_ | VARCHAR (100) |
| Информация о работе | ||||
| DISCR_ | VARCHAR (50) |
| Примечание | ||||
2.1.7 Организация связей между таблицами
Между таблицами БД может существовать связь, которая организуется через поля связей таблиц. Поля связей обязательно должны быть индексированными. Связь между таблицами определяет отношение подчиненности, при котором одна таблица является главной, а вторая подчиненной.
Обычно используется связь «один-ко-многим», когда одной записи в главной таблице может соответствовать несколько записей в подчиненной таблице. После установки связи между таблицами при перемещении в главной таблице, текущего указателя на какую-либо запись в подчиненной таблице, автоматически становятся доступными записи, у которых значение поля связи равно значению поля связи текущей записи главной таблице.
Связь «один-к-одному» означает, что каждой записи в главной таблице соответствует одна запись в подчиненной таблице. Обычно такая логическая связь используется в ситуации, когда данные, которые могут быть, в общем-то, сохранены в одной записи таблицы, из-за требований проектирования БД необходимо хранить в разных таблицах.
Связь «многие-ко-многим» означает, что одной записи главной таблицы могут соответствовать несколько записей подчиненной таблицы и, наоборот, одной записи подчиненной таблицы может соответствовать несколько записей главной таблицы.
На рисунке 2.17 показан пример создания внешних ключей.
Рисунок 2.17 - Пример создания внешнего ключа для полей таблицы RABOTA
Связь между главной и подчиненной таблицей реализуется с помощью первичных и внешних ключей.
На листе 2 графического материала показаны связи между таблицами посредством первичных и внешних ключей, описанные ниже.
-
Таблица CARTA_O
Поле ID_PR содержит первичный ключ; поля OID, ID_ZAC, ISH_ZAD, TU_TZ, ID_ORG, ID_OT, ID_ST содержат внешние ключи для связи с соответствующими таблицами OBJECTS, ZAC, DOC, ORG, OTDEL, STEPS.
-
Таблица FIO
Поле ID_FIO ,обозначенное первичным ключом, является идентификатором для каждой записи таблицы FIO.
Поле FIO_ предназначено для ввода полного имени сотрудника только на кириллице, что обеспечивается следующим кодом программы:
if (Ord(key) >= $401) and (Ord(key) <= $451) or (Ord(key)=$20) or (Key=#08) then
begin end
else key:=#0.
Поля DOLJN_, GROUP_, OTDEL_ нужны для обозначения выбираемых должности, группы и отдела соответственно. Эти поля связаны внешним ключом с таблицами DOLJNOST, GROUP, OTDEL соответственно.
-
Таблица OBJECTS.
Поле ID_OBJ, обозначенное первичным ключом, является идентификатором для каждой записи таблицы OBJECTS.
Поле SHIFR_ предназначено для ввода шифра нового объекта.
Поле TITUL_ - для ввода титула объекта.
Поле ZAKAZ_ связано с таблицей ZAC по внешнему полю ID_ZAC.
-
Таблица LINKS
Данная таблица служит для организации связи «многие-ко-многим». Поля L_TYPE, L, R содержат первичные ключи для построения логической связи с таблицей OBJECTS.
-
Таблица SHEMI
Поля OID, ID_PR, ID_RAZ, ID_PROV, ID_VNES, ID_SVER, ID_COR, ID_ST содержат внешние ключи для связи с таблицами OBJECTS, CARTA_O, SOTRUDNIKI, STEPS, SHEMI; по полю ID_SH построен внешний ключ.
-
Таблица PAPKI
По полям ID_PR и ID_SH построены внешние ключи для связи с таблицами CARTA_O и SHEMI.
-
Таблица AVTORI_RAZDELOV
Поля ID_PR, ID_IN, ZADANIE, OID содержат внешние ключи для связи с таблицами CARTA_O, SOTRUDNIKI, DOC, OBJECTS.
-
Таблица SUB
Поле ID_SUB содержит первичный ключ; поле RAZDEL – внешний ключ для связи с таблицей RAZDEL.
-
Таблица SUBPOD
Для связи с таблицами CARTA_O, SUB, RAZDEL, OBJECTSполяID_PR, ID_SUB, ID_RAZ, OID содержат внешние ключи.
-
Таблица PLAN_GROUP содержит внешние ключи по полям ID_PR, ID_IN, ID_SH, ID_ST, ID_NGO для связи с таблицами CARTA_O, SOTRUDNIKI, SHEMI, STEPS.
-
Таблица PLAN_OT содержит аналогичные ключи с таблицей PLAN_GROUP, за исключением – вместо поля ID_NGO присутствует ID_NO; для связи с таблицей GROUP по полю ID_GR построен внешний ключ.
-
Таблица PERSONAL_PLAN содержит одно единственное ключевое поле – ID_PR для связи с таблицей CARTA_O.
-
Таблица ZADANIE
Содержит внешние ключи по полям ID_IN, ZD, ID_PR для организации связи с таблицами SOTRUDNIKI, DOC, CARTA_O.
-
Таблица ZAMECANIYA
Внешние ключи по полям ID_PR, ID_SH, AVTOR, ZAMEC служат для связи с таблицами CARTA_O, SHEMI, SOTRUDNIKI, DOC.
-
Таблица ZAMETKI содержит поле ID_PR с первичным ключом.
-
Таблица REC_MESS включает в себя поля ID_PR и MAIL с внешними ключами для связи с таблицами CARTA_O, SOTRUDNIKI. Таблица SENT_MESS имеет аналогичную структуру, только вместо поля MAIL содержит поле REC.
-
Таблица INIC
Включает в себя поле TIME_VH с первичным ключом; для организации связи с таблицей SOTRUDNIKI служит поле ID_IN.
-
Таблица VR_NA_RAB имеет одно ключевое поле ID_IN с внешним ключом для связи с таблицей SOTRUDNIKI.
-
Таблица UCH_OBJ
По полям ID_IN, OID, TIME_B, ID_PR построены внешние ключи для связи с таблицами SOTRUDNIKI, OBJECTS, INIC, CARTA_O.
-
Таблицы DOC, OTDEL, RAZDEL содержат первичные ключи соответственно по полям ID_DOC, ID_OT, ID_RAZ.
-
Таблица ZAC
Поле ID_ZAC, обозначенное первичным ключом, является идентификатором для каждой записи таблицы ZAC.
Поле ZAC содержит наименования всех заказчиков.
-
Таблица ORG
Поле ID_ORG, обозначенное первичным ключом, является идентификатором для каждой записи таблицы ORG.











