加载不同的数据库取决于用户的登录?

时间:2013-05-27 00:06:00

标签: php mysql

我只是想知道根据用户的日志详细加载不同的数据库是个好主意。它是为每个用户分配一个数据库。

这只是一个想法,我正在开发一个应用程序(PHP)希望多个用户使用该应用程序,但不会一次又一次地复制源代码,而只是加载不同的数据库。

该应用程序实际上是另一个应用程序的容器。因此,用户在 app-A 下注册,然后获得在app-B中创建,编辑和更新用户的权限。

我在这里谈论 app-A

我的最后一个问题是:

可以吗?什么是con和pro?感谢您的任何建议或帮助。

3 个答案:

答案 0 :(得分:2)

如果不了解您的方案,很难猜测您想要做什么,但通常多个用户可以共享数据库。您只需确保数据行中有一些“user_id”字段,以便存储来自不同用户的信息。

为什么你认为你需要几个数据库?

建议只有一个数据库的一个可能的想法:如果您计划让许多用户连接和断开连接,那么每个用户拥有不同的数据库将非常慢,因为数据库连接创建起来很慢。这就是创建“连接池”的原因,如果每个用户都有一个数据库,则很难链接连接池。

如果我完全理解您的更新,您最好为用户分配角色并检查这些用户访问数据的权限。

答案 1 :(得分:1)

我可以直接考虑的一个问题是你需要为每个用户制作数据库。 如果您的用户数超过32000,则可能会达到最大数据库限制数。

请参阅:Does mysql have any limitation on number of databases

答案 2 :(得分:1)

从某种意义上讲它可以做到技术上可行,尽管非常实用。拥有多个数据库会大大增加存储需求,因为SQL存储具有很高的冗余,DB的切换可能会增加访问时间,而且任何事情都会让您非常头疼地跟踪数十个数据库。有许多限制用户访问数据库中数据的方法,我建议你使用其中任何一个,你不必担心过多的数据或高访问时间,因为SQL通常是荒谬的优化,所以除非你为成千上万的用户开发一个多TB的webportal,否则你可以将所有东西都推到一个数据库中。