Смекни!
smekni.com

Исследование использования программ дистанционного обучения для подготовки учебно-методической документации (стр. 13 из 27)

Таблица 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, в качестве языка программирования PHP4.1.2, в качестве сервера баз данных MySQL 4.0.21. Для разработки и тестирования приложения используется MacromediaDreamweaverMX 2004. Каждый из этих продуктов требует тонкой настройки. В этом подразделе описаны тонкости установки и настройки перечисленных программных средств.

2.3.1 Web-сервер Apache

Функции Web-сервера выполняет не компьютер, а программа, установленная на нем. Apache и является той самой программой. Когда браузер пользователя подключается к Web-серверу и посылает заголовок GET (это просьба передать файл), его запрос обрабатывает Apache. Apache проверяет, есть ли указанный в заголовке GET файл, и, если есть, отправляет его вместе с заголовками браузеру.

Apache- это своего рода стандарт Web-сервера в Интернете. Его основным конкурентом является IIS (InternetInformationServer) от 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: \ProgramFiles\ApacheGroup\Apache". Окно установки с заданием некоторых параметров показано на рисунке 2.2


Рисунок 2.2 - Окно установки web-сервера Apache

По окончании установки Apache необходимо настроить. По умолчанию корневым каталогом для HTML-документов будет C: \ProgramFiles\ApacheGroup\Apache\htdocs. Такое расположение не очень удобно, поэтому создадим каталог С: \www, в котором будут находиться файлы. В этом же каталоге создадим два подкаталога - cgi и html. В первом будут находится CGI-приложения, а во втором - HTML-файлы.

Затем нужно открыть в любом текстовом редакторе файл C: \ProgramFiles\ApacheGroup\Apache\conf \httpd. conf и отредактировать следующие директивы:

ServerName- установить имя сервера. При этом, директива ServerName по умолчанию закомментирована, то есть игнорируется сервером. Поэтому необходимо раскомментировать эту директиву, убрав перед ней значок #.

DocumentRoot- установим значение С:/www/html:

DocumentRoot с:/www/html

Таким образом, укажем каталог, в котором будут размещаться HTML-файлы.

Установим директивы ScriptAlias так:

ScriptAlias/cgi/"с:/www/cgi/"

ScriptAlias/cgi-bin/"c:/www/cgi/"

Благодаря этому создадим два псевдонима для каталога с:/www/cgi. Таким образом, если будет указан путь http: // localhost/cgi или http: // localhost/cgi-bin, то на самом деле обращение будет к каталогу с:/www/cgi.

Секцию <Directory"С:/ProgramFiles/ApacheGroup/Apache/htdocs"> заменим на следующую:

<Directory "c:/www">

Options Indexes Includes AllowOverride All Allow from all </Directory>

Таким образом, зададим ряд настроек по умолчанию для каталога с: &bsol;www и всех его подкаталогов. А именно: автоматическую генерацию списка содержимого каталога при просмотре его в браузере, поддержку SSI, а также возможность использовать файлы. access для индивидуальной настройки каталогов.

Убедимся, что есть директива AddHandler:

AddHandlercgi-script. bat. exe. cgi