7

我对 django 还没有那么丰富的经验,但是我们很快就会创建一个项目,我们想知道将哪个数据库用于我们的后端(Mongodb 或 PostgreSQL)。

我已经阅读了很多帖子,说明了两者之间的差异,但我仍然无法决定选择哪个。考虑到我以前从未使用过 Mongodb。

那我去干嘛??

非常感谢提前

4

1 回答 1

13

MongoDB 是非关系型的,因此您不能执行连接等操作。因此,许多 django.contrib 应用程序和其他第 3 部分应用程序可能无法与 mongodb 一起使用。

但是,如果您需要存储不会直接进入 postgresql 的无模式复杂对象,mongodb 可能非常有用(当然您可以 json-serialize 并放入文本字​​段,但使用 mongodb 会更好,允许您进行搜索, ..)。

所以,最好的建议是使用两个数据库:

  • PostgreSQL 用于标准应用程序,例如 django 核心、身份验证、...
  • MongoDB 仅适用于您的应用程序,当您必须存储非关系的复杂对象时

您可能还想使用raw_*跳过 django orm 的大量(大部分是不必要的)验证的方法。

请记住,数据库,尤其是 sql 与 no-sql,不是相互替代的,而是它们有自己的特性、优点和缺点,所以你必须找出哪种最适合你的需求,在每种情况下,不只是选择一个并将其用于所有事情。

更新

我忘了说:记住你必须使用django-nonrel fork 才能使 django 支持非关系型数据库。它目前是 django 1.3 的一个分支,但基于 1.4 的版本正在开发中。

于 2012-08-11T10:32:08.827 回答