2012-03-27 67 views
2

我想有一個網站,讓用戶創建自己的網站。像wordpress.com或drupalgardens.com。我應該如何爲子網站創建數據庫?

我的問題是我應該如何爲用戶網站創建數據庫?我應該爲每個用戶創建一個單獨的數據庫嗎?我應該創建一些數據庫併爲每個用戶使用不同的表前綴?

是否有成千上萬的數據庫導致性能問題?

+0

一般來說,不要使用一個數據庫,並在相關的數據庫上有一列標記誰擁有它。你會發現你將會有一些共同的表格,你想要加入到特定於用戶的表格中,然後你需要進入跨模式聯接以及什麼都不需要 - 這可能會有些尷尬。 – halfer 2012-03-27 09:31:48

+0

用戶是否可以直接訪問他們的數據庫? – Baba 2012-03-27 09:31:53

+0

是的。他們可以導出他們的數據庫 – user16948 2012-03-27 09:32:44

回答

4

爲每個用戶創建一個數據庫,它會使權限問題和命名空間錯誤的可能性降低,並且會使您像使用mysql的權限系統一樣。 AFAIK這是大多數共享主機系統的工作原理。

如果不是因爲開銷,我會爲每個用戶創建一個單獨的MySQL實例,但此時你半路上虛擬化整個系統,並使其成爲一個VPS :)

3

如果你不介意有很多表格,也不擔心你的用戶權限:你可以有一個包含每個網站的「master_table」,它是唯一的ID。 基礎上的ID,您可以創建表的前綴,如:

  • 1234_settings
  • 1234_users
  • 5262_settings
  • 5262_users
2

我想補充,如果你感覺真的很聰明,你可以使用單個Drupal安裝和多個數據庫與多站點(谷歌Drupal多站點)。

+0

我正在做你所說的 – user16948 2012-03-27 13:05:49

相關問題