Миграция системы хранения данных с JSON на реляционную базу данных
Дата публикации: 16.04.2025 12:26:13
Техническое задание Миграция системы хранения данных с JSON на реляционную базу данных 1. Цель проекта Разработать и внедрить реляционную базу данных для замены существующего хранилища данных на основе JSON-файлов в системе генерации рационов питания PlanEat с сохранением функциональности существующих алгоритмов оптимизации. 2. Описание текущей системы Система PlanEat оперирует следующими основными типами данных, хранящимися в JSON-файлах: - Рецепты (BD_main.json) - Диеты (diets.json) - Продукты с ценами (sorted_reduced_products_with_categories_with_prices.json) - Категории приемов пищи (meal_categories.json) - Категории ингредиентов по диетам (ingredients_by_diet.json) - Типы питательных веществ (nutrient_types.json) 3. Объем работ 1. Проектирование схемы базы данных Разработка логической модели данных Определение таблиц, полей и связей Разработка физической модели данных Документирование схемы БД 2. Разработка скриптов миграции Создание скриптов извлечения данных из JSON-файлов Создание скриптов трансформации данных Создание скриптов загрузки данных в БД Валидация целостности данных 3. Реализация слоя доступа к данным Создание классов/модулей для работы с БД Адаптация существующего класса DataLoader Реализация методов для всех текущих запросов Оптимизация сложных запросов 4. Модификация алгоритма оптимизации Адаптация алгоритма генерации рационов Перенос логики фильтрации в SQL Обеспечение совместимости интерфейсов 5. Тестирование и отладка Разработка тестов для проверки функциональности Нагрузочное тестирование 4. Технические требования 4.1. Требования к базе данных - СУБД: PostgreSQL 13+ или MySQL 8.0+ - Поддержка транзакций - Поддержка UTF-8 - Индексация ключевых полей для оптимизации запросов - Механизмы резервного копирования 4.2. Минимальная схема базы данных Реализовать следующие основные таблицы: 1. recipes id (PK) name category_id (FK) cuisine_id (FK) cooking_time image_url total_weight total_calories total_protein total_fat total_carbs [другие поля из класса Recipe] 2. ingredients id (PK) name category_id (FK) 3. recipe_ingredients recipe_id (PK, FK) ingredient_id (PK, FK) weight quantity unit step_percent min_weight 4. recipe_steps recipe_id (PK, FK) step_number (PK) description 5. categories id (PK) name parent_id (FK, self-reference) type (recipe/ingredient) 6. diets id (PK) name protein_percent fat_percent carbs_percent 7. diet_restrictions diet_id (PK, FK) restriction_type (ingredient/category) restricted_id restriction_level (prohibited/limited) 8. meal_types id (PK) name (breakfast/lunch/dinner/snack) 9. recipe_meal_types (многие-ко-многим) recipe_id (PK, FK) meal_type_id (PK, FK) 10. products id (PK) name category_id (FK) calories protein fat carbs 4.3. Требования к программному интерфейсу 1. Разработать класс `NutritionDatabaseManager` с методами: CRUD-операции для всех основных сущностей Специализированные методы запросов для алгоритма оптимизации 2. Адаптировать класс `DataLoader` для работы с реляционной БД: Реализовать все существующие методы Сохранить совместимость с алгоритмом оптимизации Использовать кэширование для оптимизации производительности 3. Обеспечить возможность переключения между JSON и БД для тестирования 4.4. Требования к производительности 1. Время выполнения запросов для одиночных рецептов: не более 50 мс 2. Время полной загрузки всех данных: не более 5 секунд 5. Этапы работ и сроки 1. Проектирование схемы БД 2. Миграция данных 3. Разработка слоя доступа к данным 4. Адаптация алгоритма оптимизации 5. Тестирование и отладка 6. Результаты работ 1. Схема реляционной базы данных (ERD-диаграмма) 2. SQL-скрипты для создания структуры БД 3. Скрипты миграции данных 4. Модифицированные классы для работы с БД 5. Документация по схеме БД и API 6. Отчет о тестировании производительности 7. Критерии приемки 1. Соответствие разработанной БД предоставленным требованиям 2. Успешная миграция всех данных с сохранением целостности 3. Корректная работа алгоритма генерации рационов с новыми источниками данных 4. Соответствие требованиям по производительности 5. Наличие полной документации 6. Отсутствие критических ошибок при тестировании 8. Условия сопровождения После успешного внедрения исполнитель обязуется предоставить техническую поддержку в течение 30 дней, включающую: - Устранение выявленных ошибок - Консультации по эксплуатации 9. Приложения 1. Список и структура JSON-файлов 2. Примеры данных
Привет, делаем приложение для телеграмм ботов, надо делать дизайн, в целом ничем не отличается от дизайна сайтов, только верстать не надо для компьютеров. Скину как что, если работаете в фигме, есть знания вектора вообще супер
Необходимо сделать простого бота в Телеграм с использованием популярных платформ Senler и тп. Лид попадает в Бота, мы показываем ему контент видео и текст, и далее мы его перенаправляем в основной канал. Нужна возможность отправки пушей лиду, если он не перешел в основной канал. Пример покажу.
3Д Анимация 1) Подъезжает пикап в поле на фоне леса. На пикапе стоит зеленый прямоугольный короб с открывающейся крышкой. На крыше пикапа установлен локатор. 2) Машина стоит и сканирует небо. 3) Обнаруживает вражеский БПЛА самолетного типа и показывает это на экране внутри машины. 4) Открывается крышка прямоугольного короба и из нее вылетает боевой квадрокоптер. 5) Квадрокоптер врезается во вражеский самолет, который обнаружили выше и взрывается. 6) Срок до 22 числа (сключительно),...
Ищем маркетологов, блогеров, арбитражников, владельцев телеграм-каналов и других специалистов по трафику для привлечения лидов на покупку образовательных курсов в сфере красоты, творчества, бизнеса, программирования, маркетинга, аналитики и др. Два образовательных проекта: Академия красоты Эколь и Международная школа профессий Рекомендуйте наши образовательные курсы, разместив партнерскую ссылку на вашем сайте, блоге, социальных сетях или иных ресурсах. Получайте вознаграждение за каждог...