我正在尋找關於多區域網站的數據庫結構的指導。使用MySQL的多區域市場數據庫設計
我設立一個網站,類似craigslist.com,這將允許用戶發佈增加了在他們的城市。我正在使用MySQL數據庫。
我想要區域作爲子文件夾鏈接到子域,例如ca.mysite.com轉到mysite.com/ca。
我的問題是如何管理數據庫(一個或多個)時,我想另一個城市添加到我的網站。
如果我使用爲每個城市不同的數據庫,那麼用戶將無法登錄到其他城市作爲自己的登錄信息被存儲在它們在用戶表中註冊的是DB的城市。
這可能不是一個問題,雖然,因爲內容是特定的城市,像Craigslist的。 但是,如果他們想聯繫其他城市的用戶,他們將無法做到。
此外,將有整體的重複的用戶名的地址和電子郵件地址,因爲用戶可以在註冊使用相同的電子郵件和用戶名的城市。
如果我用一個用戶表和一個消息表創建一箇中央數據庫,然後爲每個城市提供一個單獨的數據庫,並顯示所有城市的帖子,那麼當顯示基本信息時,我需要諮詢城市特定的數據庫加上存儲用戶信息的中央數據庫。
我也可以一切都存儲在一個數據庫中,並存儲在cookie登錄的用戶的位置,傳遞到一個會話變量,並顯示搜索結果等時使用該位置作爲數據庫查詢的一部分
但是,這不會爲每個查詢添加不必要的開銷嗎?
例如每一個搜索就必須有「和位置= $ USER_LOCATION」中添加的。
我真的不知道什麼是這裏最好的方法。
在此先感謝您的幫助。
謝謝Hieu。由於問題已經很長,我不想列舉所有事情。我只是想要一些方向,使用一個真實世界的例子,比如craigslist,或者一個更小的例子,一個stackoverflow用戶可能有建設經驗。該網站的主要功能是發佈廣告(其中包括文字和多達8個圖像) 。我預計每個城市在任何時候都會有大約10,000個活躍的廣告。每個用戶都可以使用簡單的內部消息系統(所有消息都在'消息'表中處理)發送消息。他們還可以發佈廣告。這是首當其衝。關鍵是多城市。 – Aidan 2014-11-05 22:07:37
如果您希望使用關係數據庫MySQL,我建議爲用戶使用一個表格(我們稱之爲用戶),一個城市(城市)表格,一個廣告(廣告)表格和一個消息表格(消息)。上述決定基於我的理解,即用戶只屬於一個城市,但他可以自由地在城市之間切換並在任何他想要的城市上發佈廣告。另外,用戶可以發送沒有建立友誼的消息。 – 2014-11-06 00:46:11
是的,這當然是基本設置,但我要問的是,設置像Craigslist這樣的多個地區(城市)的網站的NORM是什麼?將搜索100,000個廣告(當我在一個分貝上有10個城市時),而不是10,000個廣告(當有10個城市和10個個人數據庫時)會更好,如果是這樣,我該如何維護關係中的站點之間的鏈接到用戶表? – Aidan 2014-11-06 01:20:14