Задать вопрос
nastya97core
@nastya97core
Начинающий программист

Как можно оптимизировать конструкцию?

Здравствуйте. Сразу оговорюсь: мне нужен не код, а помощь в построении верной логики приложения.
Суть такая:
Я храню у себя данные в БД. Через бота я проверяю на стороннем сервисе эти же данные. Если они меняются - я записываю их себе в БД. Вне зависимости от изменений, на каждый запрос я отправляю себе результат запроса в телегу. Данных много, поэтому в телеге у меня они отображаются в виде слайдера (вперёд и назад). В свойствах кнопки хранится ID записи в БД, текущее положение и действие (вперёд или назад)

Порядок операций:
Делаю запрос на чужой сервер.
В результате мне придёт либо массив данных, либо null
Если есть массив данных, то
1. я преобразовываю массив в строку
2. Сообщаю, что данные есть
3. сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД
4. отправляю оповещение в телеграм, где указываю в параметрах кнопки переключателя слайдера id той записи, которую я только что внесла в БД

Иначе если null, то
- Сообщаю, что данных нет.
- сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД

spoiler
60fe1d2a5254a980624403.png

Мне не нравится повторение действия: сравниваю данные из БД. В случае их отличия заношу в БД, а в случае совпадения - в отдельное поле ставлю пометку и тут же получаю номер последней записи в БД. Мне нужно вносить в БД даже в случае отсутствия данных потому что потом это используется для получения хронологии изменения.

По сути, пока я не внесла данные в БД я не могу вывести оповещение в телегу, потому что мне нужно знать ID записи. Но я не могу знать ID записи, пока я преобразую массив в строку.

Как можно оптимизировать код кроме как выноса этого действия в функцию?
  • Вопрос задан
  • 124 просмотра
Подписаться 1 Простой 13 комментариев
Помогут разобраться в теме Все курсы
  • Skillfactory
    Профессия Fullstack веб-разработчик на JavaScript и PHP
    20 месяцев
    Далее
  • Хекслет
    PHP-разработчик
    10 месяцев
    Далее
  • Нетология
    Веб-разработчик с нуля: профессия с выбором специализации
    14 месяцев
    Далее
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы
FoodSoul Калининград
от 180 000 до 250 000 ₽
IT-Spirit Москва
от 230 000 до 320 000 ₽
от 200 000 до 290 000 ₽