文本文件,MongoDB还是JSON



所以,我正在学习python和discord.py,在一个有500行代码的bot中,我只请求帮助一项。剩下的,我一直在研究自己和试错。我目前正处于十字路口,想听听该走哪条路的建议。我不想问怎么做,我会自己想的(希望如此(。

所以,我有一个机器人在我的Windows PC上运行,只在一台服务器上运行,这是我自己的。机器人程序返回一条嵌入消息,其中包含基于一系列角色的非活动用户列表。在一些嵌套的IF语句之后,它会添加带有person.mentation的字段。然后将列表发布到特定的频道,并将其全部提及。

根据规定,他们有48小时的时间来改善自己的活动,这将改变他们的角色。

所以,虽然第一个命令很有魅力,我希望创建第二个命令,该命令遍历上一次"审核"中的用户列表(通常约为15-30人(,检查他们的活动是否有所改善(如果存在一组角色(,并在员工通道中报告"成员不符合规定,可能会被删除:"然后为下一次审核清除保存的用户列表。(每月两次(

要做到这一点,我需要研究如何做到,但为了节省时间,我想问我应该调查哪条路线,为什么?文本文件?DB?还是JSON?

我感谢大家的投入。

我通常建议为小型机器人使用小型数据库(如sqlite(,但如果您是python新手,则不应该学习SQL。我想使用JSON文件是可行的,尽管将它们用作数据库不是一个好主意,但它主要用作配置文件。使用JSON文件的一些缺点是:

  • 这是一个基于文件的数据存储,这使得它很容易受到竞争条件的影响
  • 您需要实现自己的同步原语,以避免损坏数据
  • 如果不小心,可能会意外地擦除整个JSON文件

JSON文件的另一种替代方案是yamltoml文件,但缺点相同。


使用数据库:

如果你想学习SQL(有一些好的、免费的、易于遵循的源代码,比如sqlbolt(,其优点是:

  • 数据库将数据组织到表中,并且能够快速插入、检索和删除记录
  • 您可以施加唯一性约束以确保避免重复
  • Python库为您强制执行同步
  • 查询语言非常直观,您可以在几个小时内运行简单的查询

MongoDB是数据库的绝佳选择,我个人没有使用过它,但它是一个很好的非关系数据库(不使用SQL(。

PS:甚至不要考虑将txt文件用作数据库,这是一个糟糕、糟糕、糟糕的主意

最新更新