首页 > 解决方案 > PostgreSQL vs MongoDB 在 Django 应用程序中执行 python 函数

问题描述

我正在尝试构建一个 Django Web 应用程序,但我不确定要使用什么数据库。能够对数据执行 python 函数并具有高度的数据操作可能性,以及相对快速变化的数据(每天或每隔一天),这一点非常重要。经过之前的研究,似乎 PostgreSQL 和 MongoDB 可能是竞争者,但我真的很想听听你的意见。谢谢!

标签: databasemongodbpostgresql

解决方案


数据库结构呢?

PostgreSQL:

PostgreSQL 是一个对象关系数据库管理系统 (ORDBMS),强调可扩展性和标准合规性。PostgreSQL 符合 ACID、事务性、具有可更新和物化视图、触发器和外键。它还支持函数和存储过程。

PostgreSQL 使用表、约束、触发器、角色、存储过程和视图作为您使用的核心组件。一个表由行组成,每行包含一组相同的列。PostgreSQL 使用主键来唯一标识表中的每一行(也称为记录),并使用外键来确保两个相关表之间的引用完整性。

PostgreSQL 也支持许多 NoSQL 特性。

MongoDB:

MongoDB 使用类似 JSON 的文档来存储无模式数据。在 MongoDB 中,文档集合不需要预定义的结构,并且不同文档的列可能会有所不同。

MongoDB 具有关系数据库的许多特性,包括富有表现力的查询语言和强一致性。但是,由于它是无模式的 MongoDB 允许您创建文档而无需先为文档创建结构。

与您拥有的关系数据库管理系统 (RDBMS) 进行有用的比较:

Table | Column | Value | Records.

相比之下,在 MongoDB 中,您有:

Collection | Key | Value | Document.

这意味着 MongoDB 中的集合就像 RDBMS 中的表。

文档就像 RDBMS 中的记录。可以通过添加或删除字段轻松修改文档,而无需重新构建整个文档。

哪个数据库适合您的业务?

PostgreSQL: PostgreSQL 似乎越来越受欢迎。如果您正在寻找一种开箱即用的标准兼容、事务和 ACID 兼容的解决方案,并且广泛支持 NoSQL 功能,那么您应该查看 PostgreSQL。

MongoDB:如果您需要可扩展性和缓存以进行实时分析,MongoDB 可能是一个不错的选择;但是,它不是为交易数据(会计系统等)而构建的。MongoDB 经常用于移动应用程序、内容管理、实时分析和涉及物联网的应用程序。如果您没有明确的架构定义,MongoDB 可能是一个不错的选择。


推荐阅读