2014-09-04 137 views
0

我有一個網絡應用程序,允許人們管理數據庫中的一組用戶和課程。這個數據庫結構是使用Web應用程序爲每個訂戶複製的,並用它們的數據填充它。例如:改變生產中的數據庫而不丟失數據

Subscriber 1 DB 
    user table 
    userID, name, age, etc 
    lesson table 
    lessonID, start, end, location, etc 

Subscriber 2 DB 
    user table 
    userID, name, age, etc 
    lesson table 
    lessonID, start, end, location, etc 

未來,我將不得不在推出新功能時推出對這些數據庫的更改。我將如何去更新所有數據庫的數據庫結構?

我知道如何添加一個額外的列:

ALTER TABLE user ADD COLUMN address VARCHAR DEFAULT 0; 

,但我怎麼得到它適用於所有的數據庫?有沒有辦法在MYSQL工作臺中做到這一點?

此應用程序使用PHP,Google App Engine和Cloud SQL。感謝您的任何意見!

回答

0

您可以很好地統計您擁有的用戶數量,然後在每個數據庫上運行for()循環並更新必要的表格。不知道如何有效或潔淨,這是在職業發展方面,但它會是有意義的我做這樣的事情:

function UpdateDatabase($db_name) { 
// connect to database here 
// run query (queries) to update the database here 
} 

for($user = number_of_users; $user = 1; $user++) { 
UpdateDatabase("Subscriber_" . $user); 
} 

當然,這個代碼是假設你用數字編號它。然而,你編號或列出你的所有用戶,這個想法是一樣的。該for循環會做這樣的事情:

  • 獲取用戶#ID
  • 更新數據庫「Subscriber_id」

所以,它遍歷,它會與ID用戶啓動1並一直走到最後。