SH8DER
@SH8DER
Начинающий Web-разработчик

Как организовать архитектуру чат бота с хранением ответов на 2 языках в БД?

Пилю telegram чат-бот. (Ссылка на реп)
И застопорился на моменте когда не понимаю как сделать лучше/правильнее чтобы не было большой нагрузки на базу данных и чатбот работал быстро, и чтобы расширять его было не сложно.

Суть такова, в базе должны хранится этапы диалога из разных веток на которых нахоидсят пользователь.
Стоит вопрос как это всё организовать, в базе и как сделать так что бы не было много обращений к базе данных.

Сейчас то что у меня сделано - приводит меня к тому что или я очень много раз буду обращаться к базе, или я буду писать очень много логике где-то в классах контроллерах каждого экрана диалога, либо и то и другое.

Структура БД

CREATE TABLE `chat_messages` (
  `id` int(11) NOT NULL,
  `chat_id` int(11) NOT NULL,
  `message_id` int(11) NOT NULL,
  `text` text NOT NULL,
  `date` datetime NOT NULL ON UPDATE CURRENT_TIMESTAMP
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `reply_dictionary` (
  `id` int(11) NOT NULL,
  `lang` varchar(10) NOT NULL,
  `action` varchar(255) NOT NULL,
  `screen` varchar(255) NOT NULL,
  `message` text NOT NULL,
  `image_list` text NOT NULL,
  `file_list` text NOT NULL,
  `reply_markup` text NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `users` (
  `id` int(11) NOT NULL,
  `telegram_id` int(11) NOT NULL,
  `name` varchar(255) NOT NULL,
  `current_screen` varchar(255) NOT NULL,
  `lang` varchar(10) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  • Вопрос задан
  • 54 просмотра
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы