完全抽象对象的数据源?

2024-05-08 13:57:16 发布

您现在位置:Python中文网/ 问答频道 /正文

如果这个问题太笼统,或者我还没有找到解决办法,我会提前道歉。在

我正在使用一个简单的REST服务器网页.py,而我的后端是mysql,所以我使用sqlalchemy声明性对象。一切都非常好,但我发现自己与使用sqlalchemy当时支持的数据库紧密相关。如果我想切换到mongodb或其他东西,我的sqlalchemy特定声明类必须重写或废弃。在

我想知道是否有任何项目(或者更广泛地说,设计模式的一个例子)允许您插入任何后端。我确信从sql后端切换到mongo后端需要相当多的代码(例如),但是如果有任何众所周知的策略可以将痛苦最小化,我会非常好奇地听到它们。在

非常感谢您的回答!在


Tags: 项目对象py服务器rest数据库声明网页
1条回答
网友
1楼 · 发布于 2024-05-08 13:57:16

这可能有助于您为MongoDB选择ORM:

MongoDB ORM for Python?

我发现很难相信在ORM的框架下从关系数据库到NoSQL数据库的任何转换都能无缝地工作在任何非平凡的项目中。但是,如果您确实需要在某个时候进行迁移,那么有些orm的语义与SQLAlchemy类似(Ming看起来很有前途,但我从未使用过它)。在

您可能想看看StackOverflow architecture described on High Scalability。简单地说,SQL数据库可以让您走得更远。在

另外,请看一下The Case Against ORM Frameworks In High Scalability Architectures,并考虑一下在需要横向扩展时是否要使用ORM。在

您还可以同时使用这两个数据库:在需要事务的地方使用SQL数据库,用于日志记录、事件的NoSQL数据库,以及nosqldbs擅长的其他字段。在

相关问题 更多 >