2008-10-21 24 views
6

我正在設計一個小型網站的過程中,並且很好奇XML文件可以/應該替代數據庫表。在某些情況下,我認爲使用數據庫表可能是過度的,只是想知道是否有其他人接受了這個決定。數據庫表或XML

謝謝!

回答

12

如果您認爲最終需要的不僅僅是少量的CRUD,或者您的網站將超出少數用戶,使用數據庫

搜索或更新XML文件可能會導致性能和未來可擴展性下降。

+1

這一點不能強調,我之前回答了這樣的問題......但我找不到鏈接。有統計數字也有差異。 – 2008-10-21 13:52:27

-1

我正在處理一個與100%XML一起用於數據存儲的應用程序。原因是允許在許多不同的其他應用程序中進行文本搜索。有時,當您需要在其他應用程序中共享數據時,XML更好。

+1

XML可用於共享數據,但這並不意味着它需要作爲XML存儲在後端。 – 2008-10-21 19:15:27

7

我會選擇使用數據庫表時併發寫入可能發生,即在任何情況下,當你無法保證只對單一數據的變化將在任何一個時間發生。

此外,如果數據是關係型的,我會使用數據庫。

對於小事情,很可能是低流量的,XML是好的。

3

IMO:當你的數據有很多寫事務時使用DB。如果您主要編寫配置類型文檔,那麼大多數情況下只讀,而不是XML。作爲數據存儲的XML並不是您的最佳解決方案,因爲使用數據庫可以獲得更好的結果。特別是當你開始有很多記錄(行)時,數據庫開始變得更容易處理。

0

您可以使用XML,如果你不打算用法師許多記錄的變化(標籤,配置等),否則它更適合使用的表。

0

我設計了我的表格並用選擇的屬性(FOR XML)生成XML文檔。

我想,如果我遇到性能問題,我可以改變我的DB庫。

這是更好地做多變的設計,如果性能問題或發生等。

2

我不同意Stephen的觀點。特別是在應用程序間共享數據時,應該使用數據庫。

數據庫用於共享數據。這就是他們發明的,這就是他們擅長的。即使在併發更新沒有問題的情況下,數據庫也比XML文件更正式。 XML的非正式性從一開始就很誘人,但最終導致不可用性。

儘管可能很難解決某些應用程序與數據和/或SQL接口的關係模型之間的阻抗不匹配問題,但您仍然可以獲得比XML更高的靈活性和穩定性。

我將保留對XML的情況,其中正式的數據分析是有點不恰當,或正式的數據庫設計超出了開發團隊的覆蓋面。

+0

我完全同意。如果您想共享數據,請使用數據庫。我們使用XML,但保留它作爲配置文件,這些文件無非是美化ini文件。 – SWD 2008-10-21 14:21:28

3

考慮數據的性質,並限制數據存儲對數據的影響。如果您的數據與記錄相似而不是文檔,結構規則和層次結構很小,並且數據元素之間可能存在許多橫向關係,那麼通常您會比使用某種本機XML存儲獲得更好的RDBMS性能和健壯性。如果您的數據採用文檔形式,並且具有不規則的順序結構和不確定的層次結構,那麼您可能不會在RDBMS中對這些數據進行建模,並且您可能希望探索原生XML數據存儲。開源的例子包括

商業XML數據庫包括

我沒有使用任何這些產品我自己呢。

無論哪種情況,都可以使用XML作爲數據交換格式。

0

XML應該用於數據傳輸 - 即在應用程序之間移動數據(當其他應用程序由於某種原因無法觸摸數據庫時)。

有[幾乎]有一個理由不是然而,使用數據庫驅動一個網站。

您也可以考慮混合方法,如由萊斯大學的Connexions項目中使用:他們使用的Plone(和其他的東西在它的上方),從已在CNXML方言創建自己的數據庫顯示數據。