- •Введение
- •Глава 2 посвящена вопросам разработки технического задания, процессу проектирования и построения системы. Рассматриваются вопросы:
- •Глава 3 описывает методику тестирования разработанного приложения, вопросы эксплуатации, этап разработки программной документации.
- •Глава 1. Анализ задачи построения системы электронного учета вакансий на предприятии оао Белзан
- •1.1 Вакансии на предприятии
- •1.2 Требования, предъявляемые к системе Vakansia
- •1.3 Определение класса решаемой задачи
- •1.4 Определение критериев выбора средств и методов решения задач
- •1.5 Технология построения windows-приложений на базе технологии Windows Forms .Net
- •1.6 Механизм взаимодействия с базой данных
- •1.7 Разработка технического задания
- •Глава 2 Проектирование и разработка программы Vakansia
- •2.1 Анализ исходных данных. Разработка требований.
- •2.2 Архитектура приложения.
- •2.3 Информационное обеспечение
- •2.4 Математическое обеспечение
- •2.4.1 Алгоритмическое обеспечение проекта
- •2.4.1.1 Логическая структура базы данных
- •2.4.1.2 Физическая модель данных
- •2.4.1.3 Схема данных
- •2.4.1.4 Хранимые процедуры
- •2.4.1.5 Sql запросы
- •2.4.2 Программное обеспечение проекта
- •2.4.2.1 Структура windows-приложения
- •2.4.2.2 Описание основных модулей приложения
- •Глава 3. Реализация и тестирование
- •3.1 Дистрибутив приложения. Развертывание
- •3.2 Реализация тестирования
- •Заключение
- •Список литературы
- •Приложение а (обязательное) Техническое задание
- •Приложение б (обязательное) Описание программы
- •Приложение b (обязательное) Программа и методика испытаний
- •Приложение г (обязательное) Руководство пользователя
- •Приложение д
- •Приложение ж Презентационный материал
2.4.1.3 Схема данных
Рассмотрим более подробно структуру таблиц базы данных.
Таблица ANKETAсодержит полную информацию о кандидате на вакансию, включая: паспортные данные, место жительство (прописка и фактический адрес проживая), наличие судимости. Все эти поля представлены идентификаторами, связанными с таблицей SPRAVICHNIK. В таблицы также храниться путь к файлу с фотографиями кандидата. Так же в таблицу заносится информация о последнем пользователе, вносившем изменение.
В таблице 2.1 представлены описание, и размерность основных полей таблицы ANKETA.
Таблица 2.1 – Поля таблицы ANKETA
|
Поле |
Тип данных, размерность |
Описание |
|
CODE_SEMIA |
INTEGER |
Идентификатор наличия детей |
|
CODE_NASIONAL |
INTEGER |
Идентификатор национальности |
|
CODE_GR |
INTEGER |
Идентификатор гражданства |
|
DATE_ZAP |
DATE |
Дата заполнения анкеты |
|
POL |
INTEGER |
Идентификатор пола |
|
OTCH |
VARCHAR, 200 |
Отчество |
|
IM |
VARCHAR, 200 |
Имя |
|
FAM |
VARCHAR, 200 |
Фамилия |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
|
DATA_DR |
DATE |
Дата рождения |
|
ZP_OT |
VARCHAR, 20 |
Зарплата от |
|
ZP_DO |
VARCHAR, 20 |
Зарплата до |
|
CODE_PK |
INTEGER |
Идентификатор владения ПК |
|
SUD1_TEXT |
VARCHAR, 500 |
Примечание: привлекался к уголовной ответственности |
Таблица ANKETA_TESTсодержит информацию о пройденных тестах кандидата на вакансию. Она содержит информацию о количестве набранных балов, процент правильных ответов. В таблице 2.2 представлено описание, и размерность каждого из полей.
Таблица 2.2 – Поля таблицы ANKETA_TEST
|
Поле |
Тип данных, размерность |
Описание |
|
BAL |
INTEGER |
Количество набранных балов |
|
CODE_TEST |
INTEGER |
Идентификатор теста |
|
CODE_ANKETA |
INTEGER |
Идентификатор кандидата |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
BAL_MAX |
INTEGER |
Максимально возможное количество баллов |
|
PROZ |
FLOAT |
Процент правильных ответов |
|
TIME_OTV |
TIME |
Время ответа |
|
CODE_REZULTAT |
INTEGER |
Идентификатор результата |
Таблица HISTORY_TEST_VOP содержит информацию о вопросах, на которые отвечал кандидат на вакантное место. В таблице 2.3 представлено описание, и размерность каждого из полей.
Таблица 2.3 – Поля таблицы HISTORY_TEST_VOP
|
Поле |
Тип данных |
Описание |
|
CODE_VOP |
INTEGER |
Идентификатор вопроса |
|
N_VOP |
INTEGER |
Номер по порядку выпавший при тестирование |
|
CODE_REZ |
INTEGER |
Идентификатор теста |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
Таблица HISTOPY_TEST_OTVсодержит информацию об ответах на вопросы теста кандидата на вакантное место. В таблице 2.4 представлено описание, и размерность каждого из полей.
Таблица 2.4 – Поля таблицы HISTOPY_TEST_OTV
|
Поле |
Тип данных, размерность |
Описание | ||
|
OTVET_BB |
INTEGER |
Количество баллов за ответ | ||
|
OTVET_RIGTH |
INTEGER |
Правильный ответ | ||
|
OTVET_USER |
INTEGER |
Выбран ли ответ как правильный | ||
|
CODE_OTV |
INTEGER |
Идентификатор ответа | ||
|
CODE_HVOP |
INTEGER |
Идентификатор вопроса | ||
|
OTVET_STR_USER |
VARCHAR, 1000 |
Текстовый ответ пользователя | ||
|
N_OTV |
INTEGER |
Номер по порядку ответа при прохождения тестирования | ||
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID | ||
Таблица DETIсодержит информацию о детях кандидата на вакансию. В таблице 2.5 дано описание, и размерность каждого из полей.
Таблица 2.5 – Поля таблицы DETI
|
Поле |
Тип данных, размерность |
Описание |
|
DATE1 |
DATE, 8 |
Дата рождения ребенка |
|
NAME |
VARCHAR, 500 |
Имя ребенка |
|
CODE_ANKET |
INTEGER |
Идентификатор кандидата |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
Таблица DOP_PROFсодержит информацию о должности/ профессии где желает работать кандидат на вакантное место. В таблице 2.6 представлено описание, и размерность каждого из полей.
Таблица 2.6 – Поля таблицы DOP_PROF
|
Поле |
Тип данных, размерность |
Описание |
|
CODE_PROF |
INTEGER |
Идентификатор должности/ профессии |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
|
CODE_ANKETA |
INTEGER |
Идентификатор кандидата |
Таблица IN_YAZсодержит информацию о владение иностранным языком кандидата на вакантное место. В таблице 2.7 представлено описание, и размерность каждого из полей.
Таблица 2.7 – Поля таблицы IN_YAZ
|
Поле |
Тип данных, размерность |
Описание |
|
CODE_VLAD |
INTEGER |
Идентификатор владения языком |
|
CODE_IN |
INTEGER |
Идентификатор иностранного языка |
|
CODE_ANKET |
INTEGER |
Идентификатор кандидата |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
Таблица OBRAZ содержит информацию об образование кандидата на вакантное место, включая год окончания, профиль, факультет, специальность наименование учебного заведения, представленным так же идентификатором, свеянным с таблицей SPRAVICHNIK. В таблице 2.8 представлено описание, и размерность каждого из полей.
Таблица 2.8 – Поля таблицы OBRAZ
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
|
CODE_NAME |
INTEGER |
Идентификатор наименования учебного заведения |
|
GOD |
INTEGER |
Год окончания обучения |
|
CODE_FORMA |
INTEGER |
Идентификатор формы обучения |
|
CODE_TIP |
INTEGER |
Идентификатор типа обучения |
|
FAKULTET |
VARCHAR, 1000 |
Факультет |
|
CODE_ANKETA |
INTEGER |
Идентификатор кандидата на вакансию |
|
CODE_PROVIL |
INTEGER |
Идентификатор профиля обучения |
|
SPECIAL |
VARCHAR, 1000 |
Специальность |
Таблица TRUD содержит информацию о предыдущих местах работы: наименование организации, подразделение, период работы, занимаемая должность, выполняемые обязанности, причина увольнения. В таблице 2.9 представлено описание, и размерность основных полей.
Таблица 2.9 – Поля таблицы TRUD
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_ANKETA_ID |
|
CODE_ANKET |
INTEGER |
Идентификатор кандидата |
|
DATE1 |
DATE, 8 |
Дата поступления на работу |
Продолжение таблицы 2.9
|
Поле |
Тип данных, размерность |
Описание |
|
DATE2 |
DATE, 8 |
Дата увольнения с работы |
|
NAME |
VARCHAR, 500 |
Наименование организации |
|
PROF |
VARCHAR, 500 |
Наименование должности/профессии |
|
OBAZ |
VARCHAR, 1000 |
Выполняемы обязанности |
Таблица VAK содержит информацию о вакансиях на предприятии. Она включает в себя код должности и подразделения, период вакансии, имя пользователя вносившего изменения. В таблице 2.10 представлено описание, и размерность основных полей.
Таблица 2.10 – Поля таблицы VAK
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_OBRAZ_ID |
|
DATE1 |
DATE, 8 |
Дата открытия вакансии |
|
DATE2 |
DATE, 8 |
Дата закрытия вакансии |
|
CODE_DOLGN |
VARCHAR, 4 |
Код должности/ профессии |
|
CODE_PODR |
VARCHAR, 4 |
Код подразделения |
Таблица NAME_TEST содержит информацию о тестах для отбора кандидата на вакантное место. Она включает в себя идентификатор наименование теста, признак будет, использоваться тест или нет, а так же дополнительные параметры: перемешивать вопросы и ответы в ходе тестирования, время тестирования и количество вопросов при прохождении теста. В таблице 2.11 представлено описание, и размерность каждого из полей.
Таблица 2.11 – Поля таблицы NAME_TEST
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
CODEDOLGN |
INTEGER |
Идентификатор должности/ профессии |
|
NAME |
VARCHAR, 1000 |
Наименование теста |
|
ALLDOLGN |
INTEGER |
Использовать тест не зависимо от должности/ профессии на которую претендует кандидат |
|
NOTVVOD |
INTEGER |
Не использовать тест |
|
BALL_OTV |
INTEGER |
Учитывать балы за каждый ответ |
|
RANDOM_VOP |
INTEGER |
Перемешивать вопросы при тестировании в случайном порядке |
|
RANDOM_OTV |
INTEGER |
Перемешивать ответы при тестировании в случайном порядке |
|
KOL_VOP |
INTEGER |
Количество вопросов, на которые должен ответить пользователь при тестировании |
|
TAMI |
TIME |
Ограничить время тестирования |
Таблица VOPROSI содержит информацию о вопросах к тесту: текст вопроса, картинка к вопросу, баллы за вопрос. В таблице 2.12 представлено описание, и размерность основных полей.
Таблица 2.12 – Поля таблицы VOPROSI
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
IMG |
BLOB |
Изображение |
|
CODETEST |
INTEGER |
Идентификатор теста |
|
TEXT |
VARCHAR, 1000 |
Текст вопроса |
Таблица OTVET содержит варианты ответа на вопросы теста. Она включает в себя тест варианта ответа, признак правильного ответа, сопровождающее изображение, признак того что пользователь сам должен ввести ответ в строку ввода. В таблице 2.13 представлено описание, и размерность основных полей.
Таблица 2.13 – Поля таблицы OTVET
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
IMG |
BLOB |
Изображение |
|
TEXT |
VARCHAR, 1000 |
Тест ответа |
|
CODEVOPR |
INTEGER |
Идентификатор вопроса |
|
PRAVELNO |
INTEGER |
Правильный ответ |
|
BB_ZA_OTV |
INTEGER |
Баллы за ответ |
|
STR_VVOD |
INTEGER |
При тестирование должна быть строка ввода |
Таблица REZULTAT_TEST содержит информацию о возможных результатах тестирования. Она включает в себя изображение, диапазон баллов. В таблице 2.14 представлено описание, и размерность основных полей.
Таблица 2.14 – Поля таблицы REZULTAT_TEST
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
IMG |
BLOB |
Изображение |
|
REZULTAT |
VARCHAR, 1000 |
Описание результата |
|
PO |
INTEGER |
Количество баллов: по |
|
OT |
INTEGER |
Количество баллов: от |
|
CODE_TEST |
INTEGER |
Идентификатор теста |
Таблица DOPTEST содержит информацию о должностях/ профессиях для которой предназначается тест. В таблице 2.15 представлено описание, и размерность каждого из полей.
Таблица 2.15 – Поля таблицы DOPTEST
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_TEST_ID |
|
CODEDOLGN |
INTEGER |
Идентификатор должности |
|
CODETEST |
INTEGER |
Идентификатор теста |
Таблица SPRAVICHNIK содержит справочную информацию. В таблице 2.16 представлено описание, и размерность каждого из полей.
Таблица 2.16 – Поля таблицы SPRAVICHNIK
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_SPRAVICHNIK_ID |
|
CODE_VID |
INTEGER |
Идентификатор вида справочника |
|
SH_CODE |
VARCHAR, 10 |
Символьный код |
|
NAME |
VARCHAR, 1000 |
Наименование |
Таблица NASTROIKA содержит информацию о настройках импорта и экспорта из программы. Она содержит признак автоматического экспорта/импорта и соответствие полей базы данных с внешним файлом. В таблице 2.17 представлено описание, и размерность основных полей.
Таблица 2.17 – Поля таблицы NASTROIKA
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_SPRAVICHNIK_ID |
|
FORMAT |
INTEGER |
Импорт: тип файла |
|
PUTI |
VARCHAR, 1000 |
Импорт: путь к файлу |
|
TABLI |
VARCHAR, 1000 |
Импорт: имя таблицы |
|
TRUDPUTI |
VARCHAR, 1000 |
Экспорт: путь к файлу |
|
TRUDTABLI |
VARCHAR, 1000 |
Экспорт: имя таблицы |
|
TRUDFORMAT |
INTEGER |
Экспорт: тип файла |
|
AVTOTRUD |
INTEGER |
Автоматически производить импорт |
|
TRUDVID |
INTEGER |
Автоматически экспортировать анкету при трудоустройстве |
Таблица Z_SPISOK содержит информацию об отчетах: имя пользователя вносившего изменение, текст запроса SQL. В таблице 2.18 представлено описание, и размерность основных полей.
Таблица 2.18 – Поля таблицы Z_SPISOK
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_Z_SPISOK_ID |
|
WUSER |
VARCHAR, 500 |
Имя пользователя |
|
NAME |
VARCHAR, 500 |
Наименование отчета |
|
LIST2 |
BLOB SUB_TYPE 1 SEGMENT SIZE 4096 CHARACTER SET WIN1251 |
SQL запрос |
Таблица Z_SPISOK_DOP содержит информацию о дополнительных настройках отчета: наименование колонки отображаемой при печати, ширина столбца. В таблице 2.19 представлено описание, и размерность каждого из полей.
Таблица 2.19 – Поля таблицы Z_SPISOK_DOP
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_Z_SPISOK_ID |
|
TITL |
VARCHAR, 1000 |
Наименование столбца |
|
NAME |
VARCHAR, 1000 |
Наименование колонки в таблицы |
|
CODE_SPISOK |
INTEGER |
Идентификатор отчета |
|
PROSENT |
INTEGER |
Ширина колонки |
Таблица Z_SPISOK_PARAM содержит сопоставление наименования параметра в SQLзапросе и выводимого на форму пользователя. В таблице 2.20 представлено описание, и размерность каждого из полей.
Таблица 2.20 – Поля таблицы Z_SPISOK_PARAM
|
Поле |
Тип данных, размерность |
Описание |
|
CODE |
INTEGER |
Идентификатор записи в таблицы, уникальное поле, используется генератор GEN_Z_SPISOK_ID |
|
TEXT1 |
VARCHAR, 1000 |
Наименование параметра |
|
NAME |
VARCHAR, 1000 |
Наименование параметра в SQL-запросе |
|
CODE_SPISOK |
INTEGER |
Идентификатор отчета |
