2010-07-22 132 views
0

我即將爲我的一個項目創建一個菜單,並且我需要進行動態導航。使用Zend Framework進行動態網站導航 - XML vs MySQL

在我的Admin後端,我將創建一個URI條目的表單,以便管理員可以創建鏈接並定義鏈接的父級及其與父級中其他鏈接的順序。我將用MySQL數據庫來做這件事。這裏的問題是:

我應該去 -

  • 從MySQL查詢創建的動態菜單,這將被轉換成一個數組,並傳遞到Zend_Navigation

  • 從XML文件創建的動態菜單,這將在MySQL插入時創建,因此將是一個靜態文件,可以更容易地緩存。

所以基本上,這是一個速度和緩存能力的問題。哪一個會更快?

回答

1

XML的優點:

  • 文件時,可以使用DB離線

DB優點:

  • 簡單的語法

您對緩存的假設是錯誤的,你永遠不會發送XML給用戶,並讓t將其緩存起來,您需要在生成頁面之前將其解析到應用程序中。

我會使用緩存並保持它的生命。在更新導航時刪除緩存(保存XML或插入到數據庫)。繁重的工作將是解析XML從數據庫中提取數據,兩者都是您希望儘可能少發生的情況,這就是爲什麼您要緩存它的原因。

緩存的數據可能在文件或RAM中(更快);並且由於XML文件已經是一個文件,您需要進一步真正使用緩存:解釋XML並緩存

  • Zend_Navigation實例(首選);或
  • 爲Zend_Navigation
+0

好了的配置,我的網頁不會在所有情況下,如果DB是下跌,所以似乎在試圖生成導航這個XML文件沒有意義的工作。謝謝,我會和DB一起去。 謝謝您對XML的澄清。我知道這一點,但不知何故,我對整個緩存事情感到困惑。 – 2010-07-22 12:50:58

+0

您可以參考參考手冊中的Zend_Cache示例,這很容易使用。我的目標是緩存內存(如memcached/APC)。 – chelmertz 2010-07-22 13:00:50