我想有一個網站,讓用戶創建自己的網站。像wordpress.com或drupalgardens.com。我應該如何爲子網站創建數據庫?
我的問題是我應該如何爲用戶網站創建數據庫?我應該爲每個用戶創建一個單獨的數據庫嗎?我應該創建一些數據庫併爲每個用戶使用不同的表前綴?
是否有成千上萬的數據庫導致性能問題?
我想有一個網站,讓用戶創建自己的網站。像wordpress.com或drupalgardens.com。我應該如何爲子網站創建數據庫?
我的問題是我應該如何爲用戶網站創建數據庫?我應該爲每個用戶創建一個單獨的數據庫嗎?我應該創建一些數據庫併爲每個用戶使用不同的表前綴?
是否有成千上萬的數據庫導致性能問題?
爲每個用戶創建一個數據庫,它會使權限問題和命名空間錯誤的可能性降低,並且會使您像使用mysql的權限系統一樣。 AFAIK這是大多數共享主機系統的工作原理。
如果不是因爲開銷,我會爲每個用戶創建一個單獨的MySQL實例,但此時你半路上虛擬化整個系統,並使其成爲一個VPS :)
如果你不介意有很多表格,也不擔心你的用戶權限:你可以有一個包含每個網站的「master_table」,它是唯一的ID。 基礎上的ID,您可以創建表的前綴,如:
一般來說,不要使用一個數據庫,並在相關的數據庫上有一列標記誰擁有它。你會發現你將會有一些共同的表格,你想要加入到特定於用戶的表格中,然後你需要進入跨模式聯接以及什麼都不需要 - 這可能會有些尷尬。 – halfer 2012-03-27 09:31:48
用戶是否可以直接訪問他們的數據庫? – Baba 2012-03-27 09:31:53
是的。他們可以導出他們的數據庫 – user16948 2012-03-27 09:32:44