2010-12-15 42 views
0

對於初學者,我是NoSQL概念的新手。在NoSQL和SQL中使用關係

我基本上是開發一個API,允許用戶創建和我們的數據庫中存儲對象。這將通過各種前端程序發生,並導致程序保存每個用戶的私人數據,共享數據的程序和數據挖掘 - 訪問許多用戶的相關數據。一個用戶可以有很多對象,我們並沒有限制對象是什麼或訪問它(程序將負責確保它們之間的通信),所以可能的對象將是其他對象的陣列等。

什麼對於具有不同權限的用戶而言,PER OBJECT ACL非常重要。我也期待的東西,如對象等

各種查找我能想象是標籤:

  • 直接 - 用戶要求文件
  • 列表我的 - 因爲我能看到什麼
  • 用戶list owned - 我創建了哪些對象
  • list tagged - 哪些對象標有'appX',我可以訪問。 並且將不可避免地會有許多其他人

我包括上面顯示我正在考慮的方案。雖然目前我並不關心可擴展性,但我喜歡NoSQL架構免費概念,以便應用程序可以查詢我不知道的對象數據。 /用戶/ obj/1/2/3我所知道的是用戶有obj。

但是場景似乎很關係給我。用戶有obj,obj有權限,權限有用戶和attrs等。我很確定我可以在RDMS基礎中構建它,只需很多序列化對象和json數據存儲,但它似乎是一個主要的NoSQL項目(和我聽過很多,想試試看)。

所以問題:

  • 這是對NoSQL的工作嗎?
  • 我如何高效地創建對象之間的這種聯繫(想的MongoDB)和一般沒有任何文件/關於如何在數據的NoSQL(希望從關係數據庫管理系統的角度)模型來處理這樣的事情沒有過多查找教程。從我一直在閱讀的內容來看,我無法看到存儲這種數據的方式,這些數據可以輕鬆地讓上述情況無需恢復到關係系統。
  • 如果有一個RDMS /鍵-VAL折衷由此芯AUTH和privlidges在RDMS被處理給人一種鍵關閉的鍵/ VAL爲對象查找(不知道如何子對象/用戶/ OBJ/1/2許可將在這裏工作)。這應該是答案嗎? :)
  • 任何其他一般建議表示讚賞。被吹捧的Facebook用例必須回答這樣的關係問題,所以我確信NoSQL可以做到這一點 - 我只是還沒有看到它如何做得更好。

感謝您與長期問題堅持。

回答

2

NOSQL:用戶的龐大的數字,速度是至關重要的,真的不關心數據完整性(它如果它發生在一個獎金)

SQL(RDBMS):一切。

0

首先,我不能回答你的整個問題,但是從我的理解:

如果這是你查找的程度:

direct - user asks for file 
list mine - as a user what can i see 
list owned - what objects have i created 
list tagged - what objects are tagged with 'appX' that i can access. and there will inevitably be many others 

MongoDB是罰款。如果您因爲任何原因需要從文件轉到用戶,那麼您想使用SQL。

+0

我可以看到諸如撤銷特權等情況,您必須知道用戶對對象有何影響 – jumentous 2010-12-16 03:33:35

+1

@jumentous我的感覺是,除非您對速度有巨大需求,否則應該使用rdms。 – Mark 2010-12-16 03:51:06