处理同时填充PostgreSQL数据库的多个用户



我目前正在尝试构建一个web应用程序,允许许多用户查询外部API(由于各种原因,我无法定期检索此API提供的所有数据来填充我的PostgreSQL数据库(。我读过几篇关于ACID和MVCC的文章,但我仍然不确定如果几个用户同时填充/读取我的PostgreSQL数据库是否会有任何问题。所以我在这里寻求建议(我对这个领域很陌生(!

假设我的用户查询外部API来检索文章。他们通过表单进行搜索,后端获取表单,查询api,填充数据库,然后查询数据库,将一些数据返回到前端。

  • 当用户查询API时,是否可以简单地创建一个唯一的表来存储它返回的文章
  • 我是否应该存储API返回的文章,并将它们中的每一个与请求它的用户相关联(文章模型将包含到用户模型的外键映射(
  • 或者我应该给每个用户一个表(数据隔离会很好,但听起来效率很低(

感谢您的帮助!

当用户查询API时,是否可以简单地创建一个唯一的表来存储它返回的文章?

是。如果文章有唯一的密钥(doi?(,您可以使用INSERT。。。关于冲突——不要处理两个人几乎同时请求一篇文章的情况(可能非常罕见(。

我应该存储API返回的文章,并将其中的每个文章与请求它的用户相关联吗(文章模型将包含到用户模型的外键映射(?

是否要?有理由这样做吗?你在乎谁要求每一篇文章吗?听起来你希望只存储第一个请求每篇文章的人,而不是每个请求?

或者我应该给每个用户一个表(数据隔离会很好,但听起来效率很低(?

没错,您会更频繁地访问API(假设大量文章被多次请求(,并存储大量重复项。如果一个人连续两次点击"提交",或者打开了多个选项卡,或者编写了一个机器人程序并行访问您的服务,那么它甚至可能无法解决问题。

最新更新