- •Курсовая работа по дисциплине
- •Введение
- •Постановка задачи
- •Обоснование выбора технологий
- •Разработка структуры программы
- •1. Основные компоненты программы
- •2. Архитектура взаимодействия компонентов
- •3. Структура базы данных
- •4. Конфигурация проекта Maven
- •Разработка собственных классов
- •5.1. Модель данных (Model)
- •5.1.1. Класс Book
- •1. Поля:
- •2. Методы:
- •5.1.2. Класс User
- •1. Поля:
- •2. Методы:
- •5.1.3. Класс CartItem
- •1. Поля:
- •2. Методы:
- •5.2. Слой доступа к данным (dao)
- •5.2.1. Класс BookDao
- •1. Поля:
- •2. Методы:
- •5.2.2. Класс UserDao
- •1. Поля:
- •2. Методы:
- •5.2.3. Класс CartDao
- •1. Поля:
- •2. Методы:
- •5.2.4. Класс DatabaseConnection
- •1. Поля (константы подключения):
- •2. Методы:
- •5.3. Сервлеты
- •5.3.1. Класс BookServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.3.2. Класс AuthServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.3.3. Класс CartServlet
- •1. Поля:
- •2. Методы http обработки:
- •5.4. Конфигурация проекта Maven
- •5.4.1. Файл pom.Xml
- •Сценарии пользователя
- •Удаление книг из корзины.
- •Оформление заказа.
- •Инструкция пользователю
- •Начало работы с приложением
- •Создание личного кабинета
- •Вход в систему для постоянных клиентов
- •Исследование книжного каталога
- •Фильтрация книг
- •Формирование корзины покупок
- •Управление корзиной
- •Оформление заказа
- •Завершение работы
- •Заключение
- •Список литературы
- •Приложение
3. Структура базы данных
В ходе разработки проекта была спроектирована и реализована реляционная база данных MySQL, предназначенная для хранения всей информации, необходимой для функционирования электронного книжного магазина. База данных состоит из трёх основных таблиц, связанных между собой через внешние ключи, что обеспечивает целостность данных и возможность выполнения сложных запросов.
Таблица books представляет собой фундаментальный компонент всей системы, поскольку содержит исчерпывающую информацию о каждой книге, доступной для приобретения в магазине. Её можно рассматривать как цифровой эквивалент полок в физическом книжном магазине, где каждая книга имеет своё уникальное место и описание. В таблице 1 представлена полная структура данной таблицы с указанием типов данных и назначения каждого поля.
Таблица 1.
-
Поле
Тип
Описание
id
INT
Уникальный идентификатор книги, автоматически генерируемый при добавлении новой записи
title
VARCHAR(255)
Название книги, обязательное поле для заполнения
author
VARCHAR(255)
Автор произведения, обязательное поле
price
DECIMAL(10,2)
Цена книги
image_url
VARCHAR(500)
URL-адрес изображения обложки книги
quantity
INT
Количество экземпляров на складе
Таблица users служит для учёта всех лиц, которые прошли процедуру регистрации в системе и получили доступ к персонализированным функциям магазина, таким как управление корзиной покупок и оформление заказов. Эта таблица является краеугольным камнем системы безопасности и персонализации приложения. В таблице 2 представлена полная структура данной таблицы с указанием типов данных и назначения каждого поля.
Таблица 2.
-
Поле
Тип
Описание
id
INT
Уникальный идентификатор пользователя
username
VARCHAR(50)
Имя пользователя для входа в систему, должно быть уникальным
password
VARCHAR(255)
Пароль пользователя
email
VARCHAR(100)
Электронная почта пользователя
Таблица cart_items представляет собой динамическую структуру, которая отслеживает текущий состав корзины покупок каждого зарегистрированного пользователя. Эта таблица выполняет роль временного хранилища, где накапливаются товары, которые пользователь планирует приобрести, но ещё не оформил как завершённый заказ. В таблице 3 представлена полная структура данной таблицы с указанием типов данных и назначения каждого поля.
Таблица 3.
-
Поле
Тип
Описание
id
INT
Уникальный идентификатор элемента корзины
user_id
INT
Идентификатор пользователя, которому принадлежит корзина
book_id
INT
Идентификатор книги, добавленной в корзину
quantity
INT
Количество экземпляров данной книги в корзине
