2012-08-11 38 views
4

我對django還沒有經驗,但我們很快創建了一個項目,我們想知道哪個數據庫用於我們的後端(Mongodb或PostgreSQL)。MongoDB vs PostgreSQL在django

我讀過很多文章說每個之間的差異,但我仍然無法做出決定去哪。考慮到我之前從未與Mongodb合作過。

那我該走什麼路?

感謝很多提前

回答

7

MongoDB是無關係,因此你不能做的事情一樣加入等 出於這個原因,許多django.contrib中的應用程序,以及其他第三部分的應用程序有可能不是與mongodb一起工作。

但是,如果您需要存儲不會直接進入postgresql的無模式複雜對象,mongodb可能非常有用(當然,您可以將json序列化並放入文本字​​段,但是使用mongodb會更好,允許你做搜索,..)。

因此,最好的建議是使用兩個數據庫:

  • 的PostgreSQL爲標準的應用,如Django的核心,認證,...
  • 的MongoDB只爲您的應用程序,當你不得不存儲非關係型的,複雜的對象

您可能還需要使用raw_*方法,通過Django的ORM跳過很多(主要是不必要的)驗證。只要記住數據庫,尤其是sql vs no-sql,不是互相替換的替代品,而是他們有自己的特點,優點和缺點,所以你必須找出哪一個最適合你的需求在每種情況下,不只是選擇一個,並將其用於一切。

UPDATE

我忘了說:記住,你必須使用django-nonrel叉爲了使Django的支持非關係型數據庫。它目前是django 1.3的一個分支,但是基於1.4的版本正在進行中。

+0

+1。你能提供一個關於'raw_ *'方法的資源的鏈接嗎?謝謝。 – 2012-08-11 10:35:08

+0

@JosvicZammit https://docs.djangoproject.com/en/1.4/topics/db/sql/ – 2012-08-11 10:41:34

+0

@JosvicZammit這裏是官方文檔:http://django-mongodb.org/reference/lowerlevel.html – redShadow 2012-08-11 10:45:34