通過多站點系統,我指的是具有多個相同版本的窗格的系統。一個例子是Gamespot,它顯示不同的發佈日期甚至不同的遊戲,具體取決於你是否在uk.gamespot,us.gamespot等。在PHP中創建多站點數據庫體系結構
這裏的網站選擇不是這個問題。問題在於開發過程和易用性以及如何選擇或輸入特定於站點的數據。還有各種系統組件可能不需要特定於站點,並且在極少數情況下,爲了報告和管理目的,要求所有站點的所有數據都可見並可選擇。
以下技術已被認爲,雖然我們知道他們會的工作,我們是不滿意自己實現的繁瑣性:
表視圖 - 通過在每個我們可以表格製作針對每個網站的多個視圖加載要查詢的特定於該站點的數據。但是,內聯SQL必須動態調用正確的視圖,並且在創建新網站的情況下,必須創建一整套新視圖。
SQL修改 - 通過創建SQL中介函數,可以修改SQL以將where子句和連接更改爲僅選擇特定於站點的數據的目標列。但是,我們認爲,通過這種設備運行所有查詢可能會遇到嚴重問題,並會限制我們的查詢靈活性。
內聯網站條款 - 儘管這是最繁瑣和刺激性的實施,但它將被證明是最可靠的,因爲我們能夠在編碼方式上執行標準。雖然這可能是最可靠的,但它對我們的開發人員來說也是最不具吸引力的,這意味着要爲幾乎每一個查詢編寫網站子句。因此,我們不是找到在系統的高層實現這個系統的最佳方式,而是試圖找到一種方法,它將允許在基本級別上很簡單地實現特定於站點的數據選擇。
請讓我知道這個問題在任何方面是否過於寬泛,我會盡力進一步縮小範圍。
第一編輯:
類型跨越網站的數據的是在相對於所述表是相同的。用戶表格將在所有網站上共享,並且每個用戶只能訪問一個,部分或全部網站。
讓我們繼續介紹Gamespot的例子。一個用戶有責任管理英國版本。
關於遊戲及其評論的信息來自所有網站的記錄,因爲這是全球相關信息 但是,可以說發佈日期來自另一個特定於網站的表格。 關於遊戲的信息以典型的方式檢索,但是獲取發佈日期需要一些額外的代碼才能獲得正確的網站。
關於用戶,無論用戶當前正在管理的哪個站點都應該是選擇和插入目標的站點。
可以想象,發佈日期不是核心表格,每個日期都不能簡單地直接映射到它各自的遊戲中。
(我並不意味着有Gamespot的的運作的任何知識,這個例子假設)
我已經更新了我的問題 – Flosculus
我曾預料過內聯SQL可能被認爲是最可行的。我非常想念我去尋找一顆神奇的子彈。數據庫的設計應該規範化,通過正確使用外鍵和使用站點引用作爲查詢的基本主題(如果需要),良好的設計應該看到實現相當簡單。謝謝你的回答。 – Flosculus