ПРОЕКТИРОВАНИЕ И РЕАЛИЗАЦИЯ БАЗЫ ДАННЫХ ДЛЯ МАГАЗИНА КОШЕК: ПРАКТИЧЕСКОЕ РУКОВОДСТВО

Шаяхметов Марк Назарович
Нефтекамский филиал Уфимского университета науки и технологий
студент 4 курса, Факультет экономико-математический

Аннотация
В данной статье рассматривается процесс проектирования и реализации реляционной базы данных для магазина кошек, соответствующей требованиям лабораторной работы.

Ключевые слова: , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Шаяхметов М.Н. Проектирование и реализация базы данных для магазина кошек: практическое руководство // Современные научные исследования и инновации. 2025. № 11 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2025/11/103854 (дата обращения: 08.04.2026).

Научный руководитель: Вильданов Алмаз Нафкатович
к.ф.-м.н., Уфимский университет науки и технологий, Нефтекамский филиал

Введение

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

Архитектура базы данных

Концептуальная модель

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

1. Таблица `cat` — основная сущность, содержащая информацию о кошках

2. Таблица `flea` — сущность клиентов (в контексте задачи использовано стилизованное название)

3. Таблица `cat_flea` — связующая таблица для отношения «многие-ко-многим»

Физическая модель данных

Таблица CAT (Кошки)

| Поле | Тип данных | Обязательное | Описание |

|——|————|—————|———-|

| `id_cat` | INT PRIMARY KEY | Да | Уникальный идентификатор |

| `name` | VARCHAR(50) | Да | Кличка животного |

| `breed` | VARCHAR(50) | Да | Порода |

| `age` | INT | Да | Возраст в месяцах |

| `price` | DECIMAL(10,2) | Да | Стоимость в рублях |

| `weight` | DECIMAL(4,2) | Да | Вес в килограммах |

| `birth_date` | DATE | Да | Дата рождения |

| `color` | VARCHAR(30) | Да | Окрас |

| `vaccinated` | BOOLEAN | Нет | Статус вакцинации |

| `description` | TEXT | Нет | Дополнительное описание |

 

Таблица FLEA (Клиенты)

| Поле | Тип данных | Обязательное | Описание |

|——|————|—————|———-|

| `id_flea` | INT PRIMARY KEY | Да | Уникальный идентификатор |

| `first_name` | VARCHAR(50) | Да | Имя клиента |

| `last_name` | VARCHAR(50) | Да | Фамилия клиента |

| `email` | VARCHAR(100) | Нет | Электронная почта |

| `phone` | VARCHAR(20) | Нет | Контактный телефон |

| `registration_date` | DATE | Да | Дата регистрации |

| `address` | TEXT | Нет | Адрес проживания |

| `discount` | INT | Нет | Размер скидки в % |

Таблица CAT_FLEA (Покупки)

| Поле | Тип данных | Обязательное | Описание |

|——|————|—————|———-|

| `id_cat` | INT | Да | Внешний ключ на таблицу CAT |

| `id_flea` | INT | Да | Внешний ключ на таблицу FLEA |

| `count` | INT | Да | Количество приобретенных животных |

| `purchase_date` | DATE | Да | Дата совершения покупки |

| `total_price` | DECIMAL(10,2) | Да | Общая стоимость покупки |

 

Реализация на SQL

 

Создание таблиц

 

“`sql

Таблица кошек

CREATE TABLE cat (

id_cat INT PRIMARY KEY AUTO_INCREMENT,

name VARCHAR(50) NOT NULL,

breed VARCHAR(50) NOT NULL,

age INT NOT NULL,

price DECIMAL(10,2) NOT NULL,

weight DECIMAL(4,2) NOT NULL,

birth_date DATE NOT NULL,

color VARCHAR(30) NOT NULL,

vaccinated BOOLEAN DEFAULT FALSE,

description TEXT

);

 

Таблица клиентов

CREATE TABLE flea (

id_flea INT PRIMARY KEY AUTO_INCREMENT,

first_name VARCHAR(50) NOT NULL,

last_name VARCHAR(50) NOT NULL,

email VARCHAR(100),

phone VARCHAR(20),

registration_date DATE NOT NULL,

address TEXT,

discount INT DEFAULT 0

);

 

Таблица покупок

CREATE TABLE cat_flea (

id_cat INT,

id_flea INT,

count INT NOT NULL DEFAULT 1,

purchase_date DATE NOT NULL,

total_price DECIMAL(10,2) NOT NULL,

PRIMARY KEY (id_cat, id_flea, purchase_date),

FOREIGN KEY (id_cat) REFERENCES cat(id_cat),

FOREIGN KEY (id_flea) REFERENCES flea(id_flea)

);

 

Наполнение данными

База данных заполнена реалистичными данными, включающими 10 записей о кошках различных пород (британские, мейн-куны, хаусы, манулы и др.) и 10 записей о клиентах из разных городов России.

Пример данных из таблицы CAT:

| ID | Имя | Порода | Возраст | Цена | Вес |

|—-|—–|——–|———|——|—–|

| 1 | Мурзик | Британский | 12 | 15000.00 | 4.5 |

| 3 | Вася | Хаус | 6 | 8000.00 | 3.8 |

| 5 | Рыжик | Манул | 18 | 50000.00 | 7.1 |

 

 Отношение «многие-ко-многим»

Ключевым аспектом проекта является реализация отношения «многие-ко-многим» между кошками и клиентами через таблицу `cat_flea`. Это позволяет:

- Одному клиенту покупать нескольких кошек

- Одну кошку продавать нескольким клиентам (в случае покупки животных одного помета)

- Учитывать количество приобретаемых животных

- Фиксировать дату и стоимость каждой покупки

Пример из задания: Клиент Иванова Мария приобрела 3 кошек породы “хаус” и 2 кошек породы “манул”, что отражено в двух записях таблицы `cat_flea`.

Практическое применение

Аналитические запросы

sql

Топ-5 самых популярных пород

SELECT c.breed, SUM(cf.count) as total_sold

FROM cat_flea cf

JOIN cat c ON cf.id_cat = c.id_cat

GROUP BY c.breed

ORDER BY total_sold DESC

LIMIT 5;

 

Выручка по месяцам

SELECT YEAR(purchase_date) as year,

MONTH(purchase_date) as month,

SUM(total_price) as monthly_revenue

FROM cat_flea

GROUP BY YEAR(purchase_date), MONTH(purchase_date)

ORDER BY year, month;

 

Операционные отчеты

База данных позволяет генерировать:

- Отчеты по продажам

- Статистику популярности пород

- Информацию о клиентской базе

- Финансовые отчеты

Заключение

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

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


Библиографический список
  1. Аткинсон, Л. MySQL Библиотека профессионала / Л. Аткинсон. – М.: Вильямс, 2002 – 255 с.
  2. Базы данных: теория и практика : учебник для бакалавров / Б.Я. Советов , В.В. Цехановский, В.Д. Чертовской .— 2-е изд. — М. : Издательство Юрайт, 2014 .— 463с. — (Бакалавр. Базовый курс).
  3. Васвани, В. Zend Framework. Разработка веб-приложений на PHP / В. Васвани. – СПб: Питер, 2012 – 319 с.


Все статьи автора «Шаяхметов Марк Назарович»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте.