- •Курсовая работа
- •Глава 1. Теоретические сведения
- •Раздел 1. Рнр
- •Раздел 2. Denwer
- •Раздел 3. MуSql
- •Раздел 4. CodeIgniter
- •Глава 2. Практика.
- •Раздел 1. Разработка структуры и создание базы данных
- •Раздел 2. Фреймворк CodeIgniter. Настройка и совмещение с веб-сервером Denwer
- •Раздел 4. Модели
- •Раздел 4. Контроллеры
- •Раздел 5. Разработка шаблонов и описание функционала
Глава 2. Практика.
Раздел 1. Разработка структуры и создание базы данных
Разработка структуры БД предполагает полное описание всех атрибутов сущностей (полей таблиц). Каждая таблица - массив из однородных элементов, которые принято называть записями. Запись - неделимая единица информации в БД, но можно сформировать такой запрос, чтобы получить какую-то часть этой информации.
Запись может содержать в себе одну или несколько именованных полей. Они задаются при создании таблицы. Каждое из полей имеет определённый тип (например, целое число, текст и другие).
Во все таблицы можно добавлять записи, изменять и удалять их, делать поиск по таблицам и выводить нужную информацию. Все эти действия выполняются с помощью SQL(StructuredQueryLanguage) запросов.
Для работы с БД, разработки ее структуры и наполнения существует большое количество приложений, в частности, PHPMyAdmin,MySqlManager,MySQLAdministrator,MySQLGUIToolsи другие. Из всех приложений для работы с базой данных выбор был сделан в пользуPHPMyAdmin, так как он обладает следующими преимуществами:
PHPMyAdminявляется свободно распространяемым продуктом;
Актуальность. Большинство разработчиков используют PHPMyAdminв качестве приложения для работы с СУБД;
Понятный интерфейс. Можно обходиться без непосредственного ввода SQLкоманд;
Наличие документации. Существует огромное количество пособий по работе с PHPMyAdmin;
Входит в состав стадартной поставки веб-сервера Denwer.
Для работы с PHPMyAdmin, необходимо выполнить следующую последовательность действий:
С помощью Denwer запустить MySql;
Перейти на страницу с PHPMyAdmin(http://localhost/Tools/phpMyAdmin);
Создать пользователя, который сможет работать с созданной БД, обладая всеми привилегиями. Во вкладке "привилегии" добавить нового пользователя (Рис.2);
Рис.2. Добавление нового пользователя.
Заполнить поле "имя пользователя", в поле "хост" выбратьlocalhost, создать пароль (Рис.3).
Рис.3. Форма заполнения данных о новом пользователе.
Выбрать необходимые глобальные привилегии (Рис.4).
Рис.4. Глобальные привилегии.
На главной страницеPHPMyAdminв поле "Новая база данных" необходимо вписать название БД "test_nn_database". Для создания таблиц в поле "Создать новую таблицу в базе данных test_nn_database ", вписать названия таблиц. Для заполнения нужной таблицы, выбрать её название и нажать на вкладку "Вставить".
Исходя из требований к созданию веб-сайта, была составлена структура БД (Рис.5).
Рис.5. ER-диаграмма.
Все таблицы имеют идентификатор.
Центральным объектом разрабатываемого сайта является таблица Tests. Каждая запись данной таблицы содержит следующие поля:
id_tests – идентификатор теста;
id_themes– идентификатор темы, к которой принадлежит тест;
name– имя теста;
population– показатель популярности теста;
description– описание теста.
Каждый тест обладает связями с таблицей Themes. Каждый тест может принадлежать только одной теме. ТаблицаThemesсостоит из двух полей: идентификатора (id_themes) и названия (name).
Таблицы QuestionsиQuestion_variantsсодержат в себе вопросы для каждого теста и варианты ответов на каждый вопрос соответственно. ТаблицаQuestionsсостоит из таких полей:
id_questions – идентификатор вопроса;
id_tests– идентификатор теста, к которому принадлежит вопрос;
text– текст вопроса;
type– тип вопроса.
Список полей для таблицы Question_variants:
id_question_variants– идентификатор варианта ответа;
id_question– вопрос, к которому относится вариант ответа;
text– текст ответа;
grade– оценка в баллах при выборе текущего ответа.
Для каждого теста может существовать бесконечное количество вопросов. На каждый вопрос может быть бесконечно много вариантов ответа.
В таблице Resultsхранятся результаты тестов. Каждая запись состоит из таких полей:
id_results –идентификатор результата;
id_tests– идентификатор теста, к которому относится результат;
text– текст результата;
low_grade– нижний предел оценки в баллах для данного результата;
high_grade– верхний предел оценки.
Каждый тест содержит несколько различных результатов.
Таблица Usersхранит информацию о зарегистрированных пользователях. О каждом пользователе хранится следующая информация:
id_users –идентификатор пользователя;
fname– имя пользователя;
lname– фамилия;
email– адрес электронной почты;
login– логин для авторизации на сайте;
password– пароль;
category– категория пользователей.
Между таблицей Tests и Users установлена связь много ко многим, т.к. каждый пользователь может пройти бесконечное количество тестов, и каждый тест может быть пройден бесконечным количеством пользователей. Данная связь достигается соединением этих таблиц с таблицей us_tes_res, которая хранит идентификаторы пользователей (id_users), тестов(id_tests) и результата каждого пройденного каждым пользователем теста (id_result).
Таблица ci_sessionsсоздана фреймворком автоматически для более безопасного хранения данных сессий.