我只是想知道根据用户的日志详细加载不同的数据库是个好主意。这是关于为每个单独的用户分配一个数据库。
这只是一个想法,我正在开发一个应用程序(PHP),希望多个用户使用该应用程序,但无需一次又一次地复制源代码,而只是加载不同的数据库。
该应用程序实际上是另一个应用程序的容器。所以用户在app-A下注册,然后拥有在 app-B 中创建、编辑和更新用户的权限。
我在这里谈论的是app-A。
我的最后一个问题是:
可以吗?优缺点是什么?感谢您的任何建议或帮助。
在不了解您的场景的情况下很难猜测您想要做什么,但通常多个用户可以共享一个数据库。您只需确保在数据行中有一些“user_id”字段,以便存储来自不同用户的信息。
为什么你认为你需要几个数据库?
推荐一个数据库的一种可能的想法:如果您计划让许多用户连接和断开连接,那么每个用户拥有不同的数据库将会非常慢,因为创建数据库连接的速度很慢。这就是创建“连接池”的原因,如果每个用户都有一个数据库,则很难链接连接池。
如果我很好地理解您的更新,您最好为用户分配角色并检查这些用户拥有的权限以访问数据。
从某种意义上说,这在技术上是可行的是可以的,尽管非常不切实际。拥有多个数据库大大增加了存储需求,因为SQL存储具有高冗余,DB的切换会增加访问时间,更何况跟踪几十个DB会让你很头疼。有很多方法可以限制用户访问数据库中的数据,我建议你使用其中任何一种,你不必担心太多的数据或高访问时间,因为 SQL 通常被荒谬地优化,所以除非你正在为成千上万的用户开发一个多 TB 的门户网站,您可以将所有内容都放在一个数据库中。
我可以直接考虑的一个缺点是您需要为每个用户创建一个数据库。如果您有超过 32000 个用户,您可能会达到最大数据库数限制。