Телефон: 8-800-350-22-65
WhatsApp: 8-800-350-22-65
Telegram: sibac
Прием заявок круглосуточно
График работы офиса: с 9.00 до 18.00 Нск (5.00 - 14.00 Мск)

Статья опубликована в рамках: XXXVII Международной научно-практической конференции «Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ» (Россия, г. Новосибирск, 24 декабря 2015 г.)

Наука: Информационные технологии

Скачать книгу(-и): Сборник статей конференции

Библиографическое описание:
Кадичев П.С. БАЗА ДАННЫХ ЭЛЕКТРОННОГО РАСПИСАНИЯ КОЛЛЕДЖА // Научное сообщество студентов XXI столетия. ТЕХНИЧЕСКИЕ НАУКИ: сб. ст. по мат. XXXVII междунар. студ. науч.-практ. конф. № 10(36). URL: http://sibac.info/archive/technic/10(36).pdf (дата обращения: 07.05.2024)
Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов


БАЗА  ДАННЫХ  ЭЛЕКТРОННОГО  РАСПИСАНИЯ  КОЛЛЕДЖА


Кадичев  Павел  Сергеевич


студент  4  курса,  факультет  СПО  ОГТИ, 
РФ,  г.  Орск


E-mail: 


 


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


Структура  базы  проектируется  с  расчетом  на  использование  для  колледжей,  но  её  структура  проста,  поэтому  её  легко  перестроить  под  другую  задачу,  например  под  школы  или  институты,  университеты.


Эта  база  данных  может  использоваться  вместе  с  любым  языком  программирования,  имеющим  поддержку  MySQL  или  библиотеки  для  работы  с  базами  данных.  Но,  пожалуй,  она  больше  рассчитана  на  работу  с  web-ориентированными  языками  такими,  как  PHP.  Perl,  Python.  В  примерах  статьи  будет  использоваться  PHP.


Итак,  структурная  схема  всей  базы  данных  представлена  на  рисунке  1.  На  схеме  все  связи  между  таблицами  обозначены  стрелками.  За  связи  между  таблицами  отвечают  внешние  ключи  таблиц.


 



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


 


База  является  реляционной  и  состоит  из  7  таблиц  и  включает  следующие  данные:


1.  cписок  специальностей  (таблица  professions);


2.  cписок  групп  (таблица  groups);


3.  дисциплины  (таблица  lessons);


4.  список  преподавателей  (таблица  teachers);


5.  расписание  занятий  по  группам  (таблицы  timetable  и  timetable_lesson).


Перейдем  к  примеру.  Заполнены  таблицы:


 



Рисунок  2.  таблица  professions


 



Рисунок  3.  таблица  groups


 



Рисунок  4.  таблица  lessons


 



Рисунок  5.  таблица  timetable


 



Рисунок  6.  таблица  timetable_lessons


 


Теперь  построим  SQL-запрос,  по  которому  выведется  расписание  группы  402,  профессии  ПКС:


SELECT  *  FROM  lessons,  groups,  professions,  timetable,  timetable_lesson  WHERE  (timetable.timetable_id  =  timetable_lesson.timetable_id)  AND  (timetable.group_id  =  groups.group_id)  AND  (lesson.lesson_id  =  timetable_lesson.lesson_id)  AND  (profession.profession_id  =  groups.profession_id)  AND  groups.groups_id  =  1;


Итак,  запрос  делается  сразу  к  5  таблицам:  groups,  professions,  lessons,  timetable,  timetable_lesson.  Запрос  делается  по  идентификатору  группы  –  groups_id.  Из  таблицы  professions,  по  полю  profession_id,  выбирается  профессия  данной  группы.  Из  timetable  выбираются  записи  по  полю  group_id  –  это  дни  недели  расписания,  из  timetable_lesson  выбираются  записи  по  полю  timetable_id.  Одна  запись  таблицы  timetable_lesson  –  это  один  урок  расписания.  Также  таблица  включает  lesson_id  (внешний  ключ  к  таблице  lessons)  и  lesson_number  (номер  урока/пары).


Реализуем  работу  запроса  с  помощью  PHP:


<?php


$link  =  mysqli_connect("localhost",  "root",  "22033022",  "timetable2")  or  die('Error!');


$mysql_query_run  =  mysqli_query($link,  "SELECT  *  FROM  lessons,  groups,  professions,  timetable,  timetable_lessons  WHERE  (timetable.timetable_id  =  timetable_lessons.timetable_id)  AND  (timetable.group_id  =  groups.group_id)  AND  (lessons.lesson_id  =  timetable_lessons.lesson_id)  AND  (professions.profession_id  =  groups.profession_id)  AND  groups.group_id  =  1");


$mysql_query_array  =  mysqli_fetch_array($mysql_query_run,  MYSQLI_ASSOC);  ?>


<h3>Профессия:<?=$mysql_query_array['profession_full'];?>.Группа:<?=$mysql_query_array['group_name'];?>.Курс:<?=$mysql_query_array['course'];?>.</h3>


<table>


<thead>


<tr><th>№</th><th>ПН</th><th>ВТ</th><th>СР</th><th>ЧТ</th><th>ПТ</th><th>СБ</th></tr>


</thead>


<tbody>


<?php  while($mysql_query_array  =  mysqli_fetch_array($mysql_query_run,  MYSQLI_ASSOC))  $table[$mysql_query_array['lesson_number']][$mysql_query_array['timetable_day']]  =  $mysql_query_array['lesson_short'];  ?>


<?php  for($j  =  1;  $j  <=  3;  $j++):  ?>


  <tr>


  <td><?=$j;?></td>


  <?php  for($i  =  1;  $i  <=  6;  $i++):  ?>


           <td>


           <?php  if(!isset($table[$j][$i])):  ?>


                     ------


           <?php  else:  echo  $table[$j][$i];  endif;  ?>


           </td>


  <?php  endfor;  ?>


  </tr>


<?php  endfor;  ?>


</tbody>


</table>


 


Результат  работы  PHP-кода  на  рисунке  7.


 



Рисунок  7.  результат  работы  PHP-кода


 


В  примере  выполнялся  всего  один  сложный  запрос  в  базу  данных  для  получения  всех  нужных  данных.  Остальную  работу  такую,  как  обработка  запроса  и  вывод  информации  на  страницу,  делает  PHP.


В  итоге  можно  сказать,  что  такая  структура  базы  данных  проста  в  использовании  на  практике,  в  нашем  случае  для  использования  с  языком  PHP.  Получить  расписание  любой  группы  можно  лишь  одним  сложным  SQL-запросом.  Для  увеличения  функционала  можно  дополнить  базу  вспомогательными  таблицами.

Проголосовать за статью
Конференция завершена
Эта статья набрала 0 голосов
Дипломы участников
У данной статьи нет
дипломов

Оставить комментарий

Форма обратной связи о взаимодействии с сайтом
CAPTCHA
Этот вопрос задается для того, чтобы выяснить, являетесь ли Вы человеком или представляете из себя автоматическую спам-рассылку.