47274 (588474), страница 9
Текст из файла (страница 9)
Таблица 2.4 - Структура таблицы "questions"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор вопроса | id_question | int | Ключевое, AUTO_INCREMENT |
| 2 | Подраздел | n_course_part | int | NOT NULL |
| 3 | Содержимое вопроса | question_content | char(255) | NOT NULL |
В таблице "answers" хранится информация о вариантах ответов на вопросы тестов. Ключевым полем в таблице является поле id_answer. Таблица связана по полю n_question с таблицей "questions" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.5
Таблица 2.5 - Структура таблицы "answers"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор ответа | id_answer | int | Ключевое, AUTO_INCREMENT |
| 2 | Вопрос | n_question | int | NOT NULL |
| 3 | Содержимое ответа | answer_content | char(255) | NOT NULL |
| 4 | Флаг правильного ответа | right_answer | enum('y', 'n') | NOT NULL, DEFAULT 'n' |
В таблице "user_courses" хранится информация о курсах, на которые зарегистрировались студенты. Ключевым полем в таблице "user_courses" является поле id_user_course. Таблица связана по полю id_user_course с таблицей "user_tests" связью "один-ко-многим", по полю login с таблицей "users" связью "многие-к-одному", по полю n_course с таблицей "courses" связью "многие-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.6
Таблица 2.6 - Структура таблицы "user_courses"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор курса студента | id_user_course | int | Ключевое, AUTO_INCREMENT |
| 2 | Логин студента | login | char(16) | NOT NULL |
| 3 | Курс | n_course | int | NOT NULL |
| 4 | Статус курса | status | enum('reg', 'end', 'not') | NOT NULL |
| 5 | Дата регистрации курса | registration_date | date | |
| 6 | Дата окончания курса | end_date | date |
В таблице "user_tests" хранится информация о тестах пройденных студентами. Ключевым полем в таблице "user_tests" является поле id_user_test. Таблица связана по полю n_user_course с таблицей "user_courses" связью "многие-к-одному", по полю n_course_part с таблицей "course_parts" связью "многие-к-одному". Поле status может принимать одно из трех значений - reg - студент обучается, end - студент успешно завершил курс, not - студент не прошел курс. Поле registration_date заполняется автоматически текущей датой при регистрации на курс. Поле end_date заполняется автоматически текущей датой при успешном или неуспешном завершении курса. Структура таблицы с описанием типов полей приведена в таблице 2.7
Таблица 2.7 - Структура таблицы "user_tests"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор теста студента | id_user_test | int | Ключевое, AUTO_INCREMENT |
| 2 | Курс студента | n_user_course | int | NOT NULL |
| 3 | Подраздел курса | n_course_part | int | NOT NULL |
| 4 | Число использованных попыток | attemps | int | |
| 5 | Процент лучшего результата | percent | int | |
| 6 | Дата последнего тестирования | last_test_date | date |
В таблице "teachers" хранится информация о преподавателях. Ключевым полем в таблице "teachers" является поле id_teacher. Таблица связана по полю id_teacher с таблицей "courses" связью "один-ко-многим". Поле attemps содержит число попыток студента пройти тест. В поле last_test_date заносится дата последней попытки прохождения теста. Структура таблицы с описанием типов полей приведена в таблице 2.8
Таблица 2.8 - Структура таблицы "teachers"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор преподавателя | id_teacher | int | Ключевое, AUTO_INCREMENT |
| 2 | Имя преподавателя | teacher_name | char(128) | NOT NULL |
| 3 | Ученая степень преподавателя | teacher_degree | char(128) | NOT NULL |
| 4 | Адрес электронной почты преподавателя | teacher_email | char(128) | |
| 5 | Ссылка на файл с фото преподавателя | teacher_photo | char(128) | |
| 6 | Информация о преподавателе | teacher_about | text |
В таблице "correct_codes" хранится информация о шифрах студентов, которым разрешено администратором обучаться дистанционно. Ключевым полем в таблице "correct_codes" является поле student_code. Таблица связана по полю student_code с таблицей "users" связью "один-к-одному". Структура таблицы с описанием типов полей приведена в таблице 2.9
Таблица 2.9 - Структура таблицы "correct_codes"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Шифр студента | student_code | int | Ключевое |
В таблице "news" хранится информация о новостях сайта. Ключевым полем в таблице "news" является поле id_news. Структура таблицы с описанием типов полей приведена в таблице 2.10
Таблица 2.10 - Структура таблицы "news"
| №п/п | Описание | Поле | Тип данных | Дополнительные параметры |
| 1 | Идентификатор новости | id_news | int | Ключевое, AUTO_INCREMENT |
| 2 | Название новости | title | char(128) | NOT NULL |
| 3 | Дата новости | date_news | date | |
| 4 | Ссылка на файл новости | body_news | char(128) | NOT NULL |
| 5 | Автор новости | autor_news | char(128) |
Схема даталогической модели предметной области представлена на рисунке 2.1
Рисунок 2.1 - Даталогическая модель предметной области
2.3 Тонкости установки и настройки аппаратно-программного комплекса
Для разработки системы используется комплекс программ, без которых создание требуемого приложения было бы невозможным. Как уже говорилось ранее, в качестве web-сервера выбран Apache версии 2.0.35, в качестве языка программирования PHP 4.1.2, в качестве сервера баз данных MySQL 4.0.21. Для разработки и тестирования приложения используется Macromedia Dreamweaver MX 2004. Каждый из этих продуктов требует тонкой настройки. В этом подразделе описаны тонкости установки и настройки перечисленных программных средств.
2.3.1 Web-сервер Apache
Функции Web-сервера выполняет не компьютер, а программа, установленная на нем. Apache и является той самой программой. Когда браузер пользователя подключается к Web-серверу и посылает заголовок GET (это просьба передать файл), его запрос обрабатывает Apache. Apache проверяет, есть ли указанный в заголовке GET файл, и, если есть, отправляет его вместе с заголовками браузеру.
Apache - это своего рода стандарт Web-сервера в Интернете. Его основным конкурентом является IIS (Internet Information Server) от Microsoft, который работает под Windows. Apache, хотя и существуют его версии под Windows, преимущественно устанавливается на Unix-подобных операционных системах - Linux и FreeBSD. Нужно также заметить, что большинство хостеров используют именно Apache, а не IIS. IIS устанавливается в основном на корпоративных серверах, работающих под Windows.
Сервер Apache просто необходим - без него мы не сможем протестировать web сценарии PHP. Конечно, можно тестировать и без сервера, но тогда нужно будет использовать сервер хостера, но в этом случае затраты на Интернет сильно возрастут.
2.3.2 Установка и настройка Apache
Для установки Apache для Windows нужно посетить сайт http: // www. apache. org и загрузить версию Apache для Windows) [12]. Установка сервера проблем не вызывает: нужно просто запустить программу установки и выбрать тип установки Typical. Еще потребуется указать каталог, в который будет производиться установка. По умолчанию будет установлен в каталог "C: \Program Files\Apache Group\Apache". Окно установки с заданием некоторых параметров показано на рисунке 2.2















