我正在开发一个电报机器人。所以我有三个表在我的数据库:
- Users—存储用户信息。字段说明:
user:存储用户的电报id。它需要为用户分配一个记录
名,姓等 - Notes -存储用户的笔记。fields:
user:表Users中字段user相关的外键。
id:记录id
注释文本、创建日期等 - 记录-存储用户的提醒。它类似于表Notes。fields:
user:表Users中字段user相关的外键。
id:记录id
记录文本、日期等
的事情是,当你要求机器人显示你的记录(从笔记或记录),它发送给你一个消息与文本:&;send me/del{id}删除此记录&;,其中id是记录的id。问题是这样的:如果表中有50行,有人开始使用我的bot,当他创建第一条记录时,bot给他发送一条消息"发送我/del51删除这条记录"。
所以这是我的问题:是否有可能使记录的id等于当前表中用户记录的数量?
我需要这样的东西:
<表类>
用户
文本创建id tbody><<tr>1234 qwerty 15.12.2022 1 1234 qwerty1 17.12.2022 2 1234 qwerty2 18.12.2022 3 1234 qwerty3 18.12.2022 4 456 xyzr1 16.12.2022 1 456 xyzr2 17.12.2022 2 456 xyzr3 18.12.2022 3 456 xyzr4 19.12.2022 4 表类>
我的解决方案是:
- count表 中当前有多少用户行
- 添加一个所以这是id
def get_records(table: str, user_id: int) -> list:
cursor.execute(f'SELECT * FROM {table} WHERE user = {user_id}')
records = cursor.fetchall()
return records
def generate_id(table: str, user_id: int) -> int:
records = get_records(table, user_id)
return len(records) + 1