Файл: Разработка WEB-ресурса по обмену книгами.pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 22.05.2023

Просмотров: 544

Скачиваний: 6

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

3. Описание структуры базы данных

Подключение к базе данных осуществляется с использованием расширения драйвера реляционных баз данных, используемого в PHP, MySQLi. Для упрощения работы с СУБД, а также упрощения возможного перехода на другой сервер, в отдельный подключаемый файл connect.php были прописаны переменные, содержащие данные для подключения к базе данных, а также прописана кодировка UTF8. Все последующие модули включают в себя данный файл и, как следствие, отсутствует необходимость в каждом файле прописывать подключение к СУБД, выбор конкретной БД и кодировку для обращения к СУБД. Также при разработке модуля личных сообщений было использовано расширение PHP Data Object (PDO). Код, прописанный в файле connect.php, при разработке веб-ресурса на домашнем компьютере показан на рисунке 2.

Рисунок 2

Структура разработанной базы данных показана на рисунке 3 в виде ER-модели.

Таблица ‘users’ (структура отображена в таблице 3) используется для регистрации и аутентификации пользователя. В нее заносится логин, электронная почта и пароль пользователя при регистрации. Таблица ‘user_info’ (таблица 4) содержит второстепенную информацию о пользователе, в обязательном порядке при регистрации пользователем заполняется только поля, содержащие логин пользователя, при желании также заполняются остальные поля либо во время регистрации, либо после; также при определенных действиях пользователя (начало и конец сессии) изменяются поля, содержащие информацию об онлайне и дате последней активности пользователя.

Рисунок 3

Таблица 3

Столбец

Тип

Атрибуты

Назначение

id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер пользователя

username

varchar(255)

INDEX

UNIQUE

NOT_NULL

Имя (логин) пользователя

email

varchar(255)

NOT_NULL

Электронная почта пользователя

password

varchar(255)

NOT_NULL

Пароль пользователя

rights

int(1)

NULL

Определяет права пользователя (при регистрации заполняется как 1, при бане – 0, для администраторов – 2)


Таблица 4

Столбец

Тип

Атрибуты

Назначение

username

varchar(255)

INDEX

NOT_NULL

Имя (логин) пользователя

fullname

varchar(255)

NULL

Полное имя пользователя

age

int(3)

NULL

Возраст пользователя

location

varchar(255)

NULL

Место жительства пользователя

userinfo

varchar(255)

NULL

Информация о пользователе

active

int(1)

NULL

Онлайн пользователя (1 – онлайн, 0 – оффлайн)

active_date

timestamp

Отметка о дате и времени последней активности

Таблица ‘messages’ (таблица 5) содержит имена отправителя и получателя. Имя отправителя берется из сессии и автоматически заполняется при отправке пользователем сообщения, имя получателя вводится пользователем вручную. Также таблица содержит данные о том, прочитано сообщение или нет, что использовано при отображении списка входящих сообщений в пользовательском интерфейсе.

Таблица 5

Столбец

Тип

Атрибуты

Назначение

m_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер сообщения

data

timestamp

Дата отправки сообщения

u_from

varchar(255)

NOT_NULL

От кого

u_to

varchar(255)

NOT_NULL

Кому

message

text

NOT_NULL

Текст сообщения

flag

int(11)

NOT_NULL

Отметка о прочтении сообщения

Таблица ‘books’ (таблица 6) является своего рода библиотекой веб-ресурса и содержит в себе названия, авторов и жанры книг.

Таблица 5

Столбец

Тип

Атрибуты

Назначение

book_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер книги

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

author

varchar(255)

NOT_NULL

Автор книги

genre

varchar(255)

NOT_NULL

Жанры книги

Таблица ‘quotes’ (таблица 7) является сборником цитат и содержит текст цитаты и название книги, из которых взята эта цитата.


Таблица 7

Столбец

Тип

Атрибуты

Назначение

quote_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер цитаты

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

quote_text

text

NOT_NULL

Текст цитаты

Таблица ‘readed’ (таблица 8) предназначена для составления персональных библиотек пользователей и содержит имя пользователя, название и автора книги, дату добавления.

Таблица 8

Столбец

Тип

Атрибуты

Назначение

r_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер прочитанной книги

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

author

varchar(255)

NOT_NULL

Автор книги

date

timestamp

Дата добавления

Таблица ‘w_read’ (таблица 9) предназначена для составления персональных пожеланий пользователя и содержит имя пользователя, название и автора книги.

Таблица 9

Столбец

Тип

Атрибуты

Назначение

wr_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер желаемой книги

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

author

varchar(255)

NOT_NULL

Автор книги

Таблица ‘w_trade’ (таблица 10) предназначена для составления предложений для обмена книгами и содержит имя пользователя, название и автора книги, информацию об обмене и дату добавления предложения.

Таблица 10

Столбец

Тип

Атрибуты

Назначение

item_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер предложения об обмене

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

author

varchar(255)

NOT_NULL

Автор книги

trade_info

text

NOT_NULL

Информация об обмене

date

timestamp

Дата добавления


Таблица ‘reviews’ (таблица 11) предназначена для хранения обзоров пользователей на книги и содержит название и автора книги, имя пользователя, текст обзора, оценку книги, дату добавления обзора.

Таблица 11

Столбец

Тип

Атрибуты

Назначение

review_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер обзора

bookname

varchar(255)

INDEX

NOT_NULL

Название книги

author

varchar(255)

NOT_NULL

Автор книги

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

review

text

NOT_NULL

Текст обзора

rating

int(2)

NOT_NULL

Оценка по десятибалльной шкале

date

timestamp

Дата добавления

Таблица ‘lit_news’ (таблица 12) предназначена для хранения новостей литературы и содержит название новости, краткое содержание, основное содержание (текст) новости, имя пользователя и дату добавления.

Таблица 12

Столбец

Тип

Атрибуты

Назначение

new_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер новости

title

varchar(255)

NOT_NULL

Название новости

small_text

varchar(255)

NOT_NULL

Краткий текст новости

text

text

NOT_NULL

Полный текст

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

date

timestamp

Дата добавления

Таблица ‘site_news’ (таблица 13) предназначена для хранения новостей и оповещений о веб-ресурсе и содержит название новости, текст, имя пользователя и дату добавления.

Таблица 13

Столбец

Тип

Атрибуты

Назначение

n_id

int(11)

AUTO_INCREMENT

PRIMARY_KEY

Идентификационный номер новости

title

varchar(255)

NOT_NULL

Название новости

text

text

NOT_NULL

Текст новости

username

varchar(255)

INDEX

NOT_NULL

Имя пользователя

date

timestamp

Дата добавления


4. Описание структуры клиентской части

4.1. Описание интерфейса пользователя

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

Рисунок 5

Рисунок 6

Также на домашней странице для всех пользователей отображается навигация, блок со списком пользователей, которые в данный момент находятся на сайте, и блок с последними новостями веб-ресурса.

Страницы ‘What to read?’ и ‘Quotes’ выглядят одинаково как для аутентифицированных пользователей, так и для неаутентифицированных и выглядят следующим образом (рисунок 7, 8 соответственно).

Рисунок 7

Рисунок 8

При нажатии на кнопки “Get another book!” и “Get another quote!” страницы обновляются и выдают другие случайные данные из БД.

Страница ‘Users’ reviews’ выглядит следующим образом (рисунок 9). На нее выводятся из базы данных пять абсолютно случайных обзоров. Для аутентифицированных пользователей также присутствует кнопка ‘Add your review!’ и соответственно возможность добавить свой обзор. Если авторизованный пользователь является автором обзора, он может перейти на страницу редактирования обзора, нажав на кнопку ‘Edit review’.

Рисунок 9

Страница с формой добавления обзора выглядит следующим образом (рисунок 10). При добавлении обзора используется метод POST.

Рисунок 10

Страница редактирования обзора выглядит следующим образом (рисунок 11) и генерируется автоматически с помощью метода GET. Все данные, отредактированные в данной форме, отправляются методом POST.