@aleksegolubev

Как сделать БД для чатов телеграм?

За БД взял SQLITE - ведь насколько я знаю, он самый простой.

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

Как такое можно сделать? Пытался на листочке такое нарисовать - всё равно идей нет. Даже представить не могу, как это будет выглядить.
  • Вопрос задан
  • 129 просмотров
Решения вопроса 1
HemulGM
@HemulGM Куратор тега Python
Delphi Developer, сис. админ
Не надо создавать новые таблицы и уж тем более БД. Всё это делается в одной таблице.
| ID записи | ID чата | ID юзера | Прочие данные      | ...
|         1 |     546 |    23456 | Бла, бла, тут со.. | ...
|         2 |     546 |    23456 | Привет, как дела?  | ...
|         3 |    9786 |   786444 | О, есть че?        | ...


А если уж, есть желание действительно создавать целую таблицу на чат, то и тут проблем нет.
Пишешь метод, который создает таблицу в БД с названием включая ИД чата. Например, "chat23456".
CREATE TABLE "chat" + chatId ( ID INTEGER PRIMARY KEY, UserId INTEGER, ... );

По этому имени и обращаешься потом. tableName = "chat" + 23456;
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
А зачем отдельная таблица под каждый чат?

Создаем одну таблицу
CREATE TABLE [dbo].[tab_query](
	[ID] [int] IDENTITY(1,1) NOT NULL,
	[UpdateId] [int] NOT NULL,
	[UpdateType] [varchar](100) NULL,
	[Message_ID] [int] NOT NULL,
	[first_name] [varchar](100) NULL,
	[last_name] [varchar](100) NULL,
	[chat_id] [int] NOT NULL,
	[text] [varchar](400) NOT NULL,
	[dateins] [datetime] NOT NULL,

Индекс по полю chat_id,
запрос по условию
SELECT * FROM  [dbo].[tab_query] WHERE chat_id = <вставить чат ид>


И не надо городить кучу таблиц.
Ответ написан
Комментировать
Можешь попробовать лёгкую библиотеку Tinybd
Ответ написан
Комментировать
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы
19 апр. 2024, в 05:01
999999 руб./за проект
19 апр. 2024, в 03:52
1000 руб./за проект
19 апр. 2024, в 03:01
1000 руб./за проект