Курсовая работа: Создание сайта Библиотека онлайн
2.1 Перечень и описание функций приложения обработки базы данных
1. Хранение информации о книгах и читателях.
2. Поиск и просмотр информации книг.
3. Хранение информации о обороте книг.
4. Просмотр статистики по книге.
5. Соблюдение ограничений, наложенных библиотекой(количество книг одновременно на руках, читатели не могут быть моложе определенного возраста, книги с годом издательства не раньше определенного года).
6. Предоставление определённого уровня доступа к некоторым функциям.
2.2 Перечень и описание сущностей базы данных
Область знаний: Это скорее справочная информация, о ней известно название и ее уникальный номер.
Книга: О книге известны название, имена авторов и соавторов (причем при не поле соавторов не может быть заполнено при пустующем поле автора), год и место издания, издательство, количество страниц и подобных книг. Книги: У книги есть свой уникальный инвентарный номер, а так же флаг, ее наличия в библиотеке в данный момент.
Заказы: При передаче читателю книги в заказах записывается информация о том какую книгу он взял и на какой читательский билет, а так же дату получения и предполагаемого возврата.
Читатели: Нам известен номер читательских билетов, имена, фамилии, отчества, даты рождения, адреса, номера телефонов (либо рабочий либо домашний).
3. Проектирование. Нормализация базы данных. Схема данных
3.1 Описание нормализации базы данных (методом ER-диаграмм).
Требуется добавить в таблицу "Книги" внешний ключ #Книги, а в таблицу "Заказы" два внешних ключа "#Читательского билета" и "#Инвентарный". Так же при нормализации отношения между сущностями "Книга – Область Знаний" мы получим еще одну таблицу, куда войдут первичные ключа каждой из сущностей.
3.2 Схема данных
В итоге получим схему данных
3.3 Перечень и описание таблиц и их полей (с указанием типов данных и ограничений) в сводной таблице
AreaOfKnowlede | |||
num_aok | Номер области знаний | int(11) | - |
name_aok | Названиеобласти знаний | varchar(15) | - |
AreaOfKnowledeBook | |||
num_aok | Номер области знаний | int(11) | - |
num_book | Номер книги | int(11) | - |
Book | |||
num_book | Номер книги | int(11) | - |
name_book | Название книги | varchar(100) | - |
author | Автор книги | varchar(25) | |
coauthor | Соавторы книги | varchar(100) | Не может быть заполнен при пустом поле "author" |
palace_publ | Место издания | varchar(25) | - |
year_publ | Год издания | year(4) | Не раньше 1960года |
publishers | Издательство | varchar(40) | - |
amount_pages | Число страниц | int(11) | - |
amount | Число подобных книг | int(11) | - |
Books | |||
num_inventory | Инвентарный номер книги | int(11) | - |
num_book | Номер книги | int(11) | - |
presence | Присутствие в библиотеке | int(11) | - |
Orders | |||
num_order | Номер заказа книги | int(11) | - |
num_reader | Номер читательского билета | int(11) | - |
num_inventory | int(11) | - | |
date_issue | date | - | |
date_return | date | - | |
returned | smallint(6) | - | |
Readers | |||
num_reader | Номер читательского билета | int(11) | - |
surname | Фмилия | varchar(15) | - |
name | Имя | varchar(15) | - |
patronymic_name | Отчество | varchar(15) | - |
address | Адрес | varchar(50) | - |
phone | Номер телефона | varchar(15) | - |
birthday | Дата рождения | date | Не моложе 17 лет |
4. Программная часть. Руководство программиста
4.1 Обращение к программе
Для обращения к программе есть поля ввода данных и кнопки, а так же гиперссылки для удобства перемещения по сайту
4.2 Входные и выходные данные
4.2.1 Словесное описание
Читателю, зашедшему на данную страницу разрешен лишь просмотр о библиотеке, просмотр некоторой ограниченной информации о книгах, а так же поиск различными методами.
Администратор или же библиотекарь, имеет доступ, по средствам ввода пароля, к более широким функциям, таким как: регистрация / редактирование информации читателя, добавление / редактирование / удаление книги, записать/списать книгу на/с читателя, а так же добавление или удаление области знаний книг. Так же Библиотекарь может видеть более широкую информацию о книгах, т.е. ее статистику, где она находится и у кого в руках побывала и полную информацию о читателе.
4.2.2 Описание функций
В коде были написаны использованы функции класса "page":