Архитектура Аудит Военная наука Иностранные языки Медицина Металлургия Метрология
Образование Политология Производство Психология Стандартизация Технологии


Логическое проектирование базы данных



Логическое проектирование базы данных представлено на таблицах 1, 2, 3, 4.

Имя базы данных – ychebnik

Razdel – Раздел

Таблица 1 – Логическое проектирование таблицы Razdel

Атрибут Смысловое описание Тип Ограничения Ключ
id_razdela Код раздела Числовой Больше 0 Первичный
opis_razdela Описание раздела Символьный 255vсимволов

Themes – Тема

Таблица 2 – Логическое проектирование таблицы Tema

Атрибут Смысловое описание Тип Ограничения Ключ
id_theme Код темы Числовой От 1 до 99999 Первичный
id_razdela Код раздела Числовой Внешний
theory Теория Символьный 255 символов

Внешний ключ id_razdela ссылается на таблицу Razdel

Primer – Пример

Таблица 3 – Логическое проектирование таблицы Primer

Атрибут Смысловое описание Тип Ограничения Ключ
id_primera Код примера Числовой Больше 0 Первичный
id_theme Код темы Числовой Внешний
nazv_primera Название примера Символьный 100 символов
uslovie Условие Символьный 50 символов
reshenie Решение Символьный 50 символов

Внешний ключ id_theme ссылается на таблицу Themes

Zadacha – Задача

Таблица 4 – Логическое проектирование таблицы Zadacha

Атрибут Смысловое описание Тип Ограничения Ключ
id_zadachi Код задачи Числовой Больше 0 Первичный
id_theme Код темы Числовой Внешний
content Содержание задачи Символьный 100 символов
pravilniy_otvet Правильный ответ Символьный 100 символов

Внешний ключ id_theme ссылается на таблицу Themes

Создание базы данных

Для создания базы данных нужно запустить PHPMyAdmin.

Войти в PHPMyAdmin, ввести имя пользователя root, откроется интерфейс PHPMyAdmin.

Создадим базу данных, щелкнем на вкладку Базы данных, введем имя базы данных.

Для создания таблицы БД, установки связей воспользуемся редактором БД, вкладка SQL.

Создадим таблицы базы данных:

Создадим таблицу primer:

Create table primer (

id_primera integer identity primary key,

id_theme integer,

nazv_primera varchar(50),

Uslovie varchar(50),

Reshenie varchar(50),

Foreign key (kod_temi) references tema)

Создадим таблицу razdel:

Create table razdel(

id_razdela integer identity primary key,

opis_razdela varchar(50))

Создадим таблицу themes:

Create table theme(

id_theme integer identity primary key,

nazv_temi varchar(20),

Theory varchar(100))

Создадим таблицу zadacha:

Create table zadacha(

id_zadachi integer identity primary key,

id_theme integer,

Content varchar(100),

pravilny_otvet varchar(100),

Foreign key (id_theme) references Themes)

Обрабатываемые транзакции

- Т1: Добавление раздела, добавляются данные в таблицу Razdel;

- T2: Изменение раздела, изменяются данные в таблице Razdel;

- Т3: Удаление раздела, удаление раздела из таблицы Razdel;

- T4: Изучение материала, Выбрать Раздел, Выбрать Тему, Показать Теорию по выбранной Теме, При щелчке по кнопке показать Пример, При щелчке по кнопке показать Задачу, Пользователь вводит ответ, Система сравнивает с правильным ответом и выдаёт сообщение;


4 Разработка клиентского программного обеспечения

Клиентское приложение будет реализовано как web – приложение.

Конфигурирование

Указать базовый адрес:

$config['base_url'] = 'http: //ychebnik/';

Подключить библиотеки database в режиме автозагрузки:

$autoload['libraries'] = array('database', 'session', 'form_validation');

Подключить хелпер url в режиме автозагрузки:

$autoload['helper'] = array('url', 'html');

Установить параметры подключения к базе данных в файле

database.php

$db['default'] = array(

'dsn' => '',

'hostname' => 'localhost',

'username' => 'root',

'password' => '',

'database' => 'ychebnik',

'dbdriver' => 'mysqli',

…..

'char_set' => 'utf8',

'dbcollat' => 'utf8_general_ci',

'save_queries' => TRUE

);

 

Указать контроллер для основной страницы как контроллер по умолчанию в файле route.php

$route['default_controller'] = 'main1';

4.2 Листинги скриптов

4.2.1 Главный контроллер – main1.php:

<? php

class Main1 extends CI_Controller{ //главный контроллер

public function index() //указываем здесь, что будет на главной(index) странице

{

//загружаем структуру страницы

$this-> load-> view('header'); //загружаем заголовок

$this-> load-> view('navbar'); //загружаем меню

//формирвание бокового меню с названиями разделов

$this-> load-> model('razdel_model'); //загружается раздел_модель

$data['razdel']= $this-> razdel_model-> razdel_view();

$this-> load-> view('sidebar', $data);

 

//$this-> load-> model('themes_model');

//$data['theme'] = $this-> themes_model-> themes_view();

 

//выводим введение

$this-> load-> view('predislovie');

//$this-> load-> view('ckeditor');

$this-> load-> view('footer');

}

//при выборе раздела

public function razdel()

{

//вывести заголовок и меню

$this-> load-> view('header'); //загружаем заголовок

$this-> load-> view('navbar'); //загружаем меню

//вывести боковое меню с темами выбранного раздела

$this-> load-> model('themes_model');

$x = $_GET['id_razdela'];

$data['theme']= $this-> themes_model-> theme_view($x);

$this-> load-> view('sidebartheme', $data);

//выводим описание раздела

//выводим подвал

}

 

//при выборе темы

public function theme()

{

//вывести заголовок и меню

$this-> load-> view('header'); //загружаем заголовок

$this-> load-> view('navbar'); //загружаем меню

//вывести боковое меню с темами выбранного раздела

$this-> load-> model('themes_model');

$x = $_GET['id_razdela'];

$data['theme']= $this-> themes_model-> theme_view($x);

$this-> load-> view('sidebartheme', $data);

//выводим теорию, примеры и кнопку для заданий

$x = $_GET['id_theme'];

$data['theme']= $this-> themes_model-> theme_view1($x);

$this-> load-> view('theme_content_view', $data);

//выводим подвал

$this-> load-> view('footer');

}

 

//при щелчке по кнопке задания

public function zadachi($id_theme)

{

//вывести заголовок и меню

//вывести боковое меню с темами выбранного раздела

//выводим задачи

//выводим подвал

}

}

? >

4.2.1 Шапка сайта header.php, представлена на рисунке 5

<! DOCTYPE HTML>

< head>

<? php echo '< link href= " '.base_url().'css/bootstrap.min.css" rel=" stylesheet" type=" text/css" > '? >

< h2 align=" center" > Е.Ю. Скляр< /h2>

< h1 align=" center" > Математика< /h1>

< h2 align=" center" > Применение математических методов в профессиональной деятельности среднего медицинского персонала< /h2>

< h3 align=" center" > < i> Учебно-методическое пособие< /i> < /h3>

< script type=" text/javascript" src=" js/jquery-2.0.3.js" > < /script>

< script src=" /js/bootstrap.min.js" > < /script>

< script type=" text/javascript" src=" ckeditor/ckeditor.js" > < /script>

< meta name=" viewport" content=" width=device-width, initial-scale=1" >

<? php

$fp = file(" files/predislovie.txt" );

$j=count($fp);

? >

< script type=" text/javascript" >

 

$(document).ready(function(){

$(".pp" ).hide();

var i = 1;

$(" #but1" ).click(function(){

if (i < = <? php echo $j;? > ) {

id_p='#par'+i;

i++;

$(id_p).fadeIn(3000);

setTimeout(arguments.callee, 1000);

}

});

});

< /script>

< /head>

< body>

< div align=" right" class=" container" >

<? php echo img('img/img.jpg'); ? >

< /div>

Рисунок 5 - Шапка сайта

4.2.2 Меню для разделов (sidebar.php), представлено на рисунке 6

< div class=" container" >

< div class=" row" >

< div class=" col-md-3" >

< ul>

< li>

<? php //здесь в цикле выбираем название раздела из базы данных и передаём в меню

foreach ($razdel as $item){

echo '< li> ';

//вызываем метод razdel, передаём через GET id_razdela

echo '< a href=" /main1/razdel? id_razdela='.$item['id_razdela'].'" > ';

echo $item['opis_razdela'].'< span class=" caret" > < /span> ';

echo '< /li> ';

echo '< /a> ';

}

? >

< /ul>

< /div>

< div class=" col-md-9" >

< div class=" content" >

< /div>

< /div>

< /div> < /div>

4.2.3 Меню для тем выбранного раздела (sidebartheme.php),

< div class=" container" >

< div class=" row" >

< div class=" col-md-3" >

< ul>

<? php //здесь в цикле выбираем название темы из базы данных и передаём в меню

foreach ($theme as $item){

echo '< li> ';

echo '< a href=" /main1/theme? id_razdela='.$item['id_razdela'].'& id_theme='.$item['id_theme'].'& theory='.$item['theory'].'" > ';

echo $item['nazv_theme'].'< span class=" caret" > < /span> ';

echo '< /a> ';

echo '< /li> ';

}

? >

< /ul>

< /div>

< div class=" col-md-9" >

< div class=" content" >

< /div>

< /div>

< /div>

< /div>

4.2.4 Подвал сайта (footer.php), представлен на рисунке 6.

< div class = " container" >

< p> <? php echo 'Бельчич Дмитрий (c) Все права защищены'; ? > < /p>

< /div>

< /body>

< /html>

Рисунок 6 Главная страница

 

4.2.5 Для показа тем выбранного раздела используются:

 

Модель razdel_model.php:

 

<? php

 

class Razdel_model extends CI_Model{

 

public function _construct()

{

parent:: __construct();

}

 

public function razdel_view(){

$query = $this-> db-> query('select id_razdela, opis_razdela from razdel');

return $query-> result_array();

}

 

}

? >

 

Модель themes_model.php:

 

<? php

 

class Themes_model extends CI_Model{

 

public function _construct()

{

parent:: __construct();

}

 

public function theme_view($id_razdela){

$query = $this-> db-> query('select id_theme, id_razdela, nazv_theme, theory from themes where id_razdela='.$id_razdela);

return $query-> result_array();

}

 

public function theme_content($id_thema){

$query = $this-> db-> query('select id_theme, theory from themes where id_razdela='.$id_razdela);

return $query-> result_array();

}

 

public function theme_view1($id_theme){

$query = $this-> db-> query('select id_theme, id_razdela, nazv_theme, theory from themes where id_theme='.$id_theme);

return $query-> result_array();

}

}

? >

 

Вид sidebartheme.php

 

< div class=" container" >

< div class=" row" >

< div class=" col-md-3" >

< ul>

<? php //здесь в цикле выбираем название темы из базы данных и передаём в меню

foreach ($theme as $item){

echo '< li> ';

echo '< a href=" /main1/theme? id_razdela='.$item['id_razdela'].'& id_theme='.$item['id_theme'].'& theory='.$item['theory'].'" > ';

echo $item['nazv_theme'].'< span class=" caret" > < /span> ';

echo '< /a> ';

echo '< /li> ';

}

? >

< /ul>

< /div>

< div class=" col-md-9" >

< div class=" content" >

< /div>

< /div>

< /div>

< /div>

 

Рисунок 7 Меню для разделов

 

Рисунок 8 Меню для тем

 


Заключение

В результате выполнения курсового проекта, была создана база данных в СУБД, а именно: MySQL.

Клиентская часть, реализована, как web-приложение с использованием языка программирования PHP.

Для разработки используется фреймворк CodeIgniter (популярный MVC фреймворк);

Для создания интерфейса web-приложения используется – Bootstrap (фреймворк).

Разработанный сайт в соответствии с требованиями, предоставляет конкретному пользователю (студент, преподаватель, гость) различные возможности, а именно:

Студент:

- Регистрация

- Просмотр разделов

- Просмотр тем

- Изучение материала

- Выполнение самостоятельных заданий;

Преподаватель:

Формирование материала;

Проверка самостоятельных заданий


СПИСОК ИСПОЛЬЗУЕМОЙ ЛИТЕРАТУРЫ

1. Стивен Хольцнер. РНР в примерах. / Стивен Хольцнер. М.: 000 «Бином-Пресс», 2007 г. Пер. с англ. 352 с

2. Ларри Ульман. Ульман Л. Основы программирования на РНР: /Ларри Ульман. Пер. с англ.-М.: ДМК Пресс, 2001.-288 с.: ил. (Самоучитель).

3. Александр Мазуркевич. MB РНР: настольная книга программиста /Александр Мазуркевич, Дмитрий Еловой. — Мн.: Новое знание, 2003. — 480 с.: ил

4. Томсон Лаура. Разработка Web-приложений на РНР и MySQL: Пер. с англ. /Лаура Томсон, Люк Вел-

5. Гутманс Э., Баккен С, Ретанс Д. PHP 5. Профессиональное программирование./ Пер. с анrл. СПб: Символ- Плюс, 2006. 704 с., ил.

6. М. Дубаков. Веб-мастеринг. / Санкт-Петербург, BHV, 2002.

7. Материалы сайта Bootstrap 3 http: // http: //bootstrap-3.ru/

8. Материалы и техническая документация сайта русскоязычного сообщества друпал-разработчкиво http: //drupal.ru/(link is external)

9. Статья " Как работает система фильтров" сайта http: //xandeadx.ru/blog/drupal/292(link is external)

10. Cтатья " Друпал как MVC Framework " сайта: http: //www.cookieslovers.com/content/dru(link is external)...

11. Материалы официального сайта языка программирования PHP http: //www.php.net/


Поделиться:



Последнее изменение этой страницы: 2017-05-11; Просмотров: 163; Нарушение авторского права страницы


lektsia.com 2007 - 2024 год. Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав! (0.11 с.)
Главная | Случайная страница | Обратная связь