我正在构建一个客户销售和发票应用程序的company.The应用是在PHP,但我想这应该没有多大关系。
应用程序结构如下:
网站文件:.php,.htm,图像和css
数据库:包含20+表
该应用程序目前正被该公司和其他两个姐妹公司使用(主要是测试版测试)。由于用户基数很小,我手动复制网站文件和数据库,以设置应用程序,以便由一个新的公司使用。我正在寻找一种使应用程序更“可伸缩”的方法,而不必手动进行“缩放”。(这意味着我不想手动管理三个不同的文件集和dbs ),因为代码与公司无关,而且数据库中包含公司信息,所以我只需要在用户请求要安装的新公司时重新创建数据库。我可以通过多种方法为新公司创建数据库。
我可以在运行时使用CREATE
H 113我可以<>E 114向我的所有表中添加一个公司列E 215,然后像以前一样继续添加信息。H 216G 217新的数据库方法吸引了我,因为备份和维护很容易,它可能会更安全一些,因为黑客只能访问一家公司的详细信息(可能.)。此选项不能在共享主机上工作,并且限制了数据库的数量。
第二个选项意味着我可以在一个数据库中创建所有的东西。但是这个选项更多的是“共享”。
由于MySQL中的表级锁定问题,我不会选择第三个选项(我没有对我的所有表使用InnoDb )。
因此,我的选择是在选项1和2之间。管理过金融应用程序的开发人员,请提出建议,因为一旦测试阶段完成,使用量就会增加,我不希望在10个数据库和文件集中手动更改相同的内容。最好的办法是做什么?
发布于 2010-08-29 11:10:20
从安全性的角度来看,客户应该拥有独立的数据库,这限制了MySQL用户的访问。该用户应该只具有应用程序所需的权限(通常是选择、插入、删除和更新),而不是管理权限(DROP、CREATE、GRANT、.)。这样,您就可以清楚地了解数据库和表。
当需要更改表结构时,只需在数据库上执行(经过彻底测试的) SQL查询。
CSS、图像和其他静态内容可以放在子域中或Alias (Apache)中。
库和中立类也应该放在一个目录中,使用include_path来包含这样的文件,因此您只有一个需要更改的文件集。
https://stackoverflow.com/questions/3594421
复制相似问题