【发布时间】:2013-04-24 14:14:14
【问题描述】:
我是 php/mysql 的新手,我正在编写一个简单的 CMS。但在这种情况下,我将托管多个公司(每个公司都有多个用户),这需要付费才能使用该系统。
所以...我的问题是关于如何组织数据库...谈到安全性、管理和性能,我只是想知道这些案例中你们的意见是最好的:
将所有公司托管在一个数据库中,它们会获得与用户匹配的公司 ID。
每家公司都有一个单独的数据库来保存用户(不再需要公司 ID)。
我会在第一种情况下开始开发......但是如果我有一些黑客攻击/sql注入,每个客户端都会受到伤害。分离 DB 后,损害只会得到一个客户。因此,就安全性而言,第二种情况可能会更好。但在管理和绩效方面就不能这么说了。
因此,根据您的经验,任何帮助或提示都会很棒!
在此先感谢,并为我糟糕的英语感到抱歉。
【问题讨论】:
-
我倾向于使用单独的数据库。 1) 如果需要,您可以选择为公司提供直接数据库访问权限。 2)为每个客户定制变得更容易,因为您不再使用(尽可能多的)复合主键。 3)每个公司的保留数据在一个单独的地方,一个公司看到另一个公司的数据的风险要小得多。
标签: php mysql database content-management-system