2009-10-26 46 views
3

我們目前正在使用Java和MySql開發新的Web應用程序。我們希望實施「訪客」登錄功能。這個想法很簡單:任何人都可以作爲訪客用戶登錄並訪問一個預先定義好的小數據集,然後他們就可以進行交互,就好像他們是完全付費的客戶端一樣。帶有樣本「訪客」數據的Web應用程序

此功能應該具有以下屬性:

  • 允許多個併發來賓登錄不串擾
  • 當客戶會話關閉的任何更改將丟失
  • 訪客登錄不宜過慢

以下是我們想出了一些想法,雖然每個人都有其優點和缺點:

1.將它們視爲任何其他客戶端,並將它們存儲在MySql數據庫中。

PROS

  • 更容易實現
  • 否sublte差異可以發生

CONS

  • Polutes有樣本數據
  • 問題的「初始活動數據庫狀態「不是解決
  • 清理不是自動

2.使用在內存中的臨時數據庫解決方案

的觀光

  • 無串擾
  • 初始狀態可以作爲圖像加載?
  • 清理是微不足道

缺點

  • 的內存數據庫和MySQL可能不支持相同的特徵或不同
  • 有可能是規模問題

我問題是:什麼是實現這一目標的最佳方式?對於這種類型的東西有沒有最好的方法?

在此先感謝,

Steve。

回答

3

我會選擇3 ...使用與您的實時數據庫具有相同結構/基礎結構的獨立模式或數據庫。

的觀光

  • 更容易實現
  • 沒有sublte的差異,可能會發生
  • 不能與 樣本數據polute實時數據庫
  • 的MySQL將 支持相同的功能
  • 不會有縮放問題

缺點/東西你仍然需要解決:

  • 初始狀態 - 我會建議一個 簡單的腳本/程序預先填充 需要
  • 清理不是自動 - 並再次 一個簡單的腳本/例程在 會話結束
+0

想過之後,有一個單獨的客人實例是有道理的。它將最初的狀態/清理問題變成小管道問題。例如,我可以想象有一個帶有X訪客數據集的訪客數據庫備份文件可供使用。在這種情況下,我們只需要按一定的時間間隔執行恢復。 – Steve 2009-10-26 15:55:11

2

通常,當您有一個基於訪客的系統提供樣本數據時,您不會指向這些用戶的實時數據庫 - 您將它們指向特殊的訪客版本。造成這種情況的原因有很多,但主要原因是您可以將數據庫回滾到樣本數據的檢查點,而不會影響活動用戶。