2010-03-29 54 views
2

我們以前只有一個網絡應用程序,但現在我們將其分解爲多個網絡應用程序。每個人都將被打包成單獨的產品(網絡應用程序)有些人有一些共同的東西有些不。多個網絡應用程序和數據庫的體系結構

它最初是用php編碼並使用Postgresql 8.4和CodeIgniter作爲框架。

我正在尋找一些關於如何設置多個Web應用程序的好建議。他們都有自己的獨特數據。數據庫中的一些數據對於某些應用程序可能是通用的,但不是全部。所有的應用程序將在一臺服務器上,並將有一些API來操縱數據。

我希望它的結構使一個用戶帳戶可以訪問他們購買的任何產品。 (有點像谷歌帳戶)

我不知道它是一個好主意,有多個數據庫,或只是有一個大的。最終我們將使用S3來拍攝一些視頻和其他圖像。

您的想法和建議非常感謝。


UPDATE:
感謝您的答覆。我可以看到數據庫分佈在很多驅動器上,因爲我們不允許刪除長達10年的任何數據。

此外,我們有很多圖像(我忘了在原來的問題中提到這一點),沒有像flikr,但體面的金額。我們現在有近300Gigigs,由於新的業務交易,我們每個月都會看到約500名新成員。現在圖像根據他們的組被存儲在多個文件夾中。如果硬盤驅動器用完了/我將如何訪問它們?我假設這是負載平衡器進來的地方。

回答

0

關於數據庫,您可以在PostgreSQL中使用不同的SCHEMA來分離不同的應用程序。然後,您可以爲一個應用程序擁有一個只有一個模式的數據庫,但也可以爲許多應用程序提供多個模式。

PostgreSQL可以處理非常大的數據庫,幾個TB根本不是問題。

1

單個數據庫可能會更乾淨,只是因爲您可以在跨多個應用程序進行查詢時重複使用相同的連接,並在沒有任何連接的情況下加入它們。例如,在博客條目的邊欄中添加相關產品或視頻的列表,並使用通用標記系統將其綁定在一起。或者在Google閱讀器或郵件主題中添加Wave的功能,並輕鬆引用電子表格&之間的文檔,以便進行Google比較。

總的數據庫大小不應該影響任何東西,每個表都是獨立於其他文件的獨立文件。衝突/混淆的表名可能是主要問題,因爲全新的功能被添加,但是稍微有一點名稱空間是很長的。

+0

通過單個數據庫訪問還簡化了其他流程,如緩存連接的查詢,執行事務,備份/回滾,管理相關表。 – 2010-03-30 00:30:22

相關問題