首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在运行时创建表与在运行时创建数据库

问在运行时创建表与在运行时创建数据库
EN

Stack Overflow用户
提问于 2010-08-29 10:48:38
回答 1查看 974关注 0票数 1

我正在构建一个客户销售和发票应用程序的company.The应用是在PHP,但我想这应该没有多大关系。

应用程序结构如下:

网站文件:.php,.htm,图像和css

数据库:包含20+表

该应用程序目前正被该公司和其他两个姐妹公司使用(主要是测试版测试)。由于用户基数很小,我手动复制网站文件和数据库,以设置应用程序,以便由一个新的公司使用。我正在寻找一种使应用程序更“可伸缩”的方法,而不必手动进行“缩放”。(这意味着我不想手动管理三个不同的文件集和dbs ),因为代码与公司无关,而且数据库中包含公司信息,所以我只需要在用户请求要安装的新公司时重新创建数据库。我可以通过多种方法为新公司创建数据库。

我可以在运行时使用CREATE

  • 创建一个新的数据库和20+表。我可以在运行时创建附加的20+表,以公司名称作为表的前缀,使用CREATE H 113我可以<>E 114向我的所有表中添加一个公司列E 215,然后像以前一样继续添加信息。H 216G 217

新的数据库方法吸引了我,因为备份和维护很容易,它可能会更安全一些,因为黑客只能访问一家公司的详细信息(可能.)。此选项不能在共享主机上工作,并且限制了数据库的数量。

第二个选项意味着我可以在一个数据库中创建所有的东西。但是这个选项更多的是“共享”。

由于MySQL中的表级锁定问题,我不会选择第三个选项(我没有对我的所有表使用InnoDb )。

因此,我的选择是在选项1和2之间。管理过金融应用程序的开发人员,请提出建议,因为一旦测试阶段完成,使用量就会增加,我不希望在10个数据库和文件集中手动更改相同的内容。最好的办法是做什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2010-08-29 11:10:20

从安全性的角度来看,客户应该拥有独立的数据库,这限制了MySQL用户的访问。该用户应该只具有应用程序所需的权限(通常是选择、插入、删除和更新),而不是管理权限(DROP、CREATE、GRANT、.)。这样,您就可以清楚地了解数据库和表。

当需要更改表结构时,只需在数据库上执行(经过彻底测试的) SQL查询。

CSS、图像和其他静态内容可以放在子域中或Alias (Apache)中。

库和中立类也应该放在一个目录中,使用include_path来包含这样的文件,因此您只有一个需要更改的文件集。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3594421

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档