Миграция системы хранения данных с 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. Примеры данных
Источник: www.fl.ru
Число просмотров: 2

Еще проекты:

Дизайн WEB-APP, UI дизайнер (Бюджет: 50000 руб, для всех)

Привет, делаем приложение для телеграмм ботов, надо делать дизайн, в целом ничем не отличается от дизайна сайтов, только верстать не надо для компьютеров. Скину как что, если работаете в фигме, есть знания вектора вообще супер

Сделать простой Телеграм бот (Бюджет: 1500 руб)

Необходимо сделать простого бота в Телеграм с использованием популярных платформ Senler и тп. Лид попадает в Бота, мы показываем ему контент видео и текст, и далее мы его перенаправляем в основной канал. Нужна возможность отправки пушей лиду, если он не перешел в основной канал. Пример покажу.

Изготовление мультика

3Д Анимация  1) Подъезжает пикап в поле на фоне леса. На пикапе стоит зеленый прямоугольный короб с открывающейся крышкой. На крыше пикапа установлен локатор.  2) Машина стоит и сканирует небо. 3) Обнаруживает вражеский БПЛА самолетного типа и показывает это на экране внутри машины.  4) Открывается крышка прямоугольного короба и из нее вылетает боевой квадрокоптер.  5) Квадрокоптер врезается во вражеский самолет, который обнаружили выше и взрывается. 6) Срок до 22 числа (сключительно),...

Продвижение учебного центра, курсов, обучения

Ищем маркетологов, блогеров, арбитражников, владельцев телеграм-каналов и других специалистов по трафику для привлечения лидов на покупку образовательных курсов в сфере красоты, творчества, бизнеса, программирования, маркетинга, аналитики и др. Два образовательных проекта: Академия красоты Эколь и Международная школа профессий Рекомендуйте наши образовательные курсы, разместив партнерскую ссылку на вашем сайте, блоге, социальных сетях или иных ресурсах.  Получайте вознаграждение за каждог...

Создание сайта или готовый сайт по теме логистики (Бюджет: 1500 руб)

Требуется сайт (лейдинг) на тематику логистики