我有一个网络应用程序,允许人们管理数据库中的一组用户和课程。使用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 :(得分: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为1的用户开始,一直到最后。