一个数据库下的邮件网站论坛

时间:2013-07-01 19:03:36

标签: mysql database-design

我试图找到我的问题的答案,但我还没有找到正确的答案(如果你指出我的话,会很高兴)。在运营服务(网站,论坛,维基,电子邮件)时,我是新手。我宁愿做实验。

我在一台服务器上托管了几个网站(主要是wordpress),邮件服务器,论坛,wiki和文件共享(owncloud)。

直到现在,每次我安装新服务时,我都会创建新的数据库(mysql),就像安装自述文件一样。我想将一些服务连接在一起。主要统一用户数据库。 什么是最好的方法。对于我的服务器cpu加载,是否有多个数据库而不是一个db更重?它安全吗?管理它容易吗? 如果在拥有多个数据库时cpu load没有问题,是否可以创建用户数据库并将其链接到服务数据库,我想将其链接到?

1 个答案:

答案 0 :(得分:0)

让多个应用程序(论坛,wiki,...)访问同一个数据库不会对CPU使用产生任何影响,但还有其他缺点:

  • 应用程序使用的表名称可能存在冲突(其中许多可能具有“会话”或“帖子”表)。某些Web应用程序具有使用字符串为表名添加前缀的功能,例如“wp_session”和“wp_posts”以解决冲突。
  • 是的,它不太安全。当其中一个应用程序出现安全漏洞并且有人设法访问其数据库时,所有应用程序的数据都会受到损害。
  • 在进行应用程序升级,备份,删除或添加应用程序时,可能更容易管理多个数据库。
  • 意外破坏一个数据库,您将破坏所有应用程序。

要使应用程序使用相同的身份验证数据库,通常不足以将它们指向同一个数据库,因为它们可能使用不同的数据库模式来存储用户信息(auth数据库中的不同列),不同的散列用于密码存储,等等。

问题非常广泛,具体答案很大程度上取决于您使用的实际应用程序。一般来说,最好的方法可能是选择支持OpenID或OAuth等协议的应用程序,或者支持LDAP数据库或PAM(可插入身份验证模块)等身份验证后端。这些方法允许您使用由单个方法管理的单个用户数据库。应用程序都需要使用相同的后端。无论如何,要让它顺利运行,这可能是一次非常好的学习经历。