Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Kursach_ver_1_00.docx
Скачиваний:
138
Добавлен:
13.04.2015
Размер:
1.57 Mб
Скачать

Глава 2. Практика.

Раздел 1. Разработка структуры и создание базы данных

Разработка структуры БД предполагает полное описание всех атрибутов сущностей (полей таблиц). Каждая таблица - массив из однородных элементов, которые принято называть записями. Запись - неделимая единица информации в БД, но можно сформировать такой запрос, чтобы получить какую-то часть этой информации.

Запись может содержать в себе одну или несколько именованных полей. Они задаются при создании таблицы. Каждое из полей имеет определённый тип (например, целое число, текст и другие).

Во все таблицы можно добавлять записи, изменять и удалять их, делать поиск по таблицам и выводить нужную информацию. Все эти действия выполняются с помощью SQL(StructuredQueryLanguage) запросов.

Для работы с БД, разработки ее структуры и наполнения существует большое количество приложений, в частности, PHPMyAdmin,MySqlManager,MySQLAdministrator,MySQLGUIToolsи другие. Из всех приложений для работы с базой данных выбор был сделан в пользуPHPMyAdmin, так как он обладает следующими преимуществами:

  • PHPMyAdminявляется свободно распространяемым продуктом;

  • Актуальность. Большинство разработчиков используют PHPMyAdminв качестве приложения для работы с СУБД;

  • Понятный интерфейс. Можно обходиться без непосредственного ввода SQLкоманд;

  • Наличие документации. Существует огромное количество пособий по работе с PHPMyAdmin;

  • Входит в состав стадартной поставки веб-сервера Denwer.

Для работы с PHPMyAdmin, необходимо выполнить следующую последовательность действий:

  1. С помощью Denwer запустить MySql;

  2. Перейти на страницу с PHPMyAdmin(http://localhost/Tools/phpMyAdmin);

  3. Создать пользователя, который сможет работать с созданной БД, обладая всеми привилегиями. Во вкладке "привилегии" добавить нового пользователя (Рис.2);

Рис.2. Добавление нового пользователя.

  1. Заполнить поле "имя пользователя", в поле "хост" выбратьlocalhost, создать пароль (Рис.3).

Рис.3. Форма заполнения данных о новом пользователе.

  1. Выбрать необходимые глобальные привилегии (Рис.4).

Рис.4. Глобальные привилегии.

  1. На главной странице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создана фреймворком автоматически для более безопасного хранения данных сессий.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]