关于如何组织某个项目,我遇到了一个架构问题。
该项目是创建一个模型包和相关的数据库连接,以用于多个不同的 Web 应用程序。
我希望使用以下模型创建模型层次结构:
User
Application
Log
还有更多模型,但这三个模型说明了基本的潜在问题。
User 模型与 Application 具有多对多的关系。
并且一个应用程序与日志具有一对多的关系。
User * - * Application
Application 1 - * Log
我遇到的问题是我希望用户和应用程序存在于 Postgres 数据库中,而日志存在于 Mongo 数据存储中。
我将日志放入不同的数据存储的主要原因是我不需要进行任何更新,只需插入所述模型即可。我不需要立即与插入物保持一致。我想每周利用聚合框架和地图减少。此外,我将拥有的日志文件数量将胜过我将拥有的用户/应用程序数量。规模为数百万到 1。我将主要使用此模型的服务器将通过 websockets 进行通信,因此流量和插入量会很高,我真的不需要 postgres。(但如果您觉得有义务,请随时(很好地)引导我朝不同的方向前进)。
现在我使用 python 和 SQLAlchemy 进行建模、引擎和迁移。
虽然我还没有开始,但我计划将 MongoKit 用于 mongo 模型。
到目前为止,我已经设置了 SQLAlchemy 引擎,其中包含用户和应用程序模型的模型和迁移。
我如何设置整个包,以便当我将此 repo 作为 Flask 应用程序的依赖项包含在内时,我可以同时使用引擎和连接池?
因为我已经可以看到,在应用程序上拥有一个用于检索最新日志的属性可能会成为一个问题。