更新所有数据库中的进程和视图


Update procs and views in all databases

我正在计划一个构建,让我的每个用户的企业都有自己的数据库,即每个办公室一个数据库,每个办公室平均有大约5个用户。出于许多原因,我想要单独的数据库,尤其是可移植性和备份。

每个数据库将具有完全相同的结构。将会有一些大的过程,我们的商业模式有望不断改进。考虑到这一点,每次我们发布新版本或功能时,我该如何更新每个数据库中的proc和视图?

该技术是在谷歌应用引擎上的PHP和MySQL。我读过关于mysqldbcopy实用程序的文章,但我想知道是否有更好的方法,或者我是否应该通过php-mysqli调用发送所有脚本。或者,我可以以某种方式至少从主数据库运行proc,并将客户端数据库名称作为变量吗?

我迷路了。

这对于注释来说太长了。

一般来说,一个数据库更好。但是,有一些合理的担忧——特别是在安全性、备份和增量维护方面——可能会建议使用多个数据库。此外,如果任何客户端想要自己托管解决方案,那么您就有多个数据库。

典型的方法是使每个数据库都是自包含的。它将包含应用程序所需的所有存储过程、函数、表、触发器等等。也就是说,没有"主"数据库。

如果您正在考虑拥有一个"主"数据库,那么您可能会首先考虑将所有数据存储在那里。