2013-02-26 104 views
-1

我打算有一個上傳文件的數據庫,我只是想把文件放在我的服務器上,但有一個單獨的文本類文件(json,xml等),其中包含所有信息,如名稱,描述,標籤和學校主題。我知道我可以使用MySQL數據庫,但實際上我只是最終通過PHP的json_encode()將結果發送給jQuery jquery ajax調用。我想繼續前進,只是存儲名稱,描述和其他重要(快速訪問)信息會更快,如果我已經在xml或json格式...我應該使用什麼樣的數據結構來存儲文件庫..?

什麼是一些不同的好處我的意圖結構?

讓我知道,如果我不是很清楚。我相信我很模糊。

+0

您的其他應用程序是否使用數據庫? – shapeshifter 2013-02-26 00:15:47

+0

這是範圍廣泛的方法 - 取決於很多因素,最明顯的是您要上傳的文件的可能數量以及您想要的主要樹形結構是什麼?與快速數據庫搜索相比,搜索文件最終會變得非常慢。 – BenOfTheNorth 2013-02-26 00:16:28

+0

僅僅因爲XML/JSON被用作* web服務*(或半服務)中的* transport *,並不意味着用作*後端*是一個好主意。 – 2013-02-26 00:17:20

回答

2

您可能會考慮查看像MongoDb,DynamoDB等NoSQL數據庫。它們的設計基本上考慮了存儲無模式數據(包括JSON結構)的想法。

案例,其中的NoSQL存儲解決方案可能是理想的包括:

  • 你想儲存不適合傳統的鍵值或者關係型數據庫結構以及數據(即樹的層次結構,數據是在充滿變數結構等)
  • 您需要能夠在數據結構上執行詳細搜索/過濾器。如果您只是使用關鍵值存儲或關係數據庫來存儲序列化的數據結構,這可能非常困難。
  • 您需要具備強制執行讀/寫鎖或具有事務支持(即通過典型的平面文件數據序列化方法無法使用的項)的功能。
+0

@pst它增加了存儲文檔的能力他選擇的格式(聽起來像JSON中的序列化元數據可能是OP感興趣的東西),同時仍然爲他提供類似數據庫的CRUD和查找功能(例如,他不需要通過一堆平面文件搜索記錄或設計自己的文件讀寫鎖定機制) – 2013-02-26 00:22:28

+0

非常感謝!這真的很有幫助。有沒有特別的你特別喜歡? – user2109258 2013-02-26 00:30:28

+0

@pst我沒有將原始問題解釋爲想知道如何處理二進制文件本身,而是如何存儲文件元數據(單獨的「文本」文檔)。你是正確的,因爲這種元數據可以很容易地存儲在關係數據庫或NoSQL數據庫中。這個問題真的成爲這種元數據的訪問模式之一。數據是否是靜態的?如果它得到更新,只需要更新一部分元數據或整個元數據結構?他需要對元數據進行什麼樣的搜索?這些都是關鍵問題 – 2013-02-26 00:31:16

相關問題