
- •Домашнее задание
- •1.1. Разработать каркас для процесса Работа с классификатором изделий.
- •1.2. Содержание работы
- •1.3. Исходные данные для задачи
- •1.4. Рекомендуемые инструменты
- •1.5. Рекомендуемые источники
- •Аннотация
- •1. Описание выполненной работы
- •1.1. Введение
- •1.2. Анализ исходных данных
- •2. Создание базы данных
- •2.2. Разработка основных процедур
- •2.2.1. Проверка категории на существование
- •2.2.2. Проверка изделия на существование
- •2.2.3. Добавление категории
- •2.2.4. Добавление подкатегории
- •2.2.5. Добавление изделия
- •2.2.6. Получение всех категорий
- •2.2.7. Получение всех изделий
- •2.2.8. Обновление цены изделия
- •2.2.9. Обновление количества изделия
- •2.2.10. Изменить категорию изделия
- •2.2.11. Удаление изделия
- •2.2.12. Удаление категории
- •2.2.13. Удаление подкатегории
- •2.2.14. Проверка на цикл при изменении родителя подкатегории
- •2.2.15. Изменение родителя подкатегории
- •2.2.16. Изменение имени категории
- •2.2.17. Изменение имени изделия
- •2.2.18. Получение всех предков подкатегории
- •2.2.19. Получение всех подкатегорий категории
- •2.2.20. Вывод всех подкатегорий категории
- •2.2.21. Получение всех изделий категории
- •2.2.22. Удаление всех таблиц
- •2.2.23. Получение названия родителя у подкатегории
- •2.2.24. Заполнение базы данных контрольным примером
1. Описание выполненной работы
1.1. Введение
В этой работе представлен классификатор для работы с изделиями (товарами) дачной мебели с маркет-плейса Яндекс.маркет в связи с требованиями к реализации программы с помощью библиотеки типа sql "sqlite3", входящий в пакет языка программирования python3.
1.2. Анализ исходных данных
Для разработки концептуального проекта будем использовать редактор StarUML.
В качестве исходных данных используется источник
Яндекс.Маркет - https://market.yandex.ru/
Фрагмент классификатора представлен ниже:
Изделия
столы
металл
Стол arizone
Стол garden story
дерево
Стол эстер
Стол кентуки
стулья
пластик
Стул RAMBO
Стул Keter
металл
Стул arizone
Стул складной
кресла
кресло кокон
кресло m-group
кресло гамак
двухместное кресло
кресло gemini promob
кресло парящая кровать
Диаграмма классов для фрагмента предметной области представлена на рис. 1
1.3. Разработка функциональных требований к подсистеме
В директории UseCase Model создадим диаграмму вариантов использования с именем Работа с классификатором изделий.
На рис. 2 приведена диаграмма ВИ Работа с классификатором.
1.4. Разработка модели классов
Модель классов для ВИ Работа с классификатором представлена на рис. 3.
1.5. Разработка модели хранения в среде СУБД данных классификатора изделий
1.6.1. Разработка ERD
Первоначально опишем модель хранения в виде ERD. Для этого воспользуемся графическим редактором StarUML.
В данной диаграмме, чтобы использовать подкатегории существует поле id_parent, которое ссылается на прошлый класс категории. В первой (корневой) категории id_parent = null.
2. Создание базы данных
2.1. Создание новой базы данных
path = "C:/Users/admin/source/repos/UNIVERSITY_repos/3 course/6 sem/mispris/1/furniture.db"
conn = sqlite3.connect(path)
cursor = conn.cursor()
print("\n\nDB has been created/connected\n")
conn.execute("PRAGMA foreign_keys = ON")
def create_category_table():
cursor.execute('''CREATE TABLE IF NOT EXISTS category
(id INTEGER PRIMARY KEY AUTOINCREMENT,
id_parent INTEGER,
category_name TEXT UNIQUE,
FOREIGN KEY (id_parent) REFERENCES category(id))''')
conn.commit()
def create_product_table():
cursor.execute('''CREATE TABLE IF NOT EXISTS product
(id INTEGER PRIMARY KEY AUTOINCREMENT,
id_category INTEGER,
product_name TEXT NOT NULL,
quantity INTEGER DEFAULT 0,
price REAL DEFAULT 0,
FOREIGN KEY (id_category) REFERENCES category(id))''')
conn.commit()
def creating_tables():
create_category_table()
create_product_table()
creating_tables()