多个数据库与单个数据库

时间:2008-11-12 02:29:13

标签: database database-design

我正在查看现有网站,他们正在使用单独的数据库。数据库似乎按以下方式设置:

  • 一般类型(user_type,语言,年龄等)
  • 会员数据(注册信息和登录)
  • 网站配置

就个人而言,我会将所有内容都放入1个数据库中。对我来说,这将使得比几乎总是必须将数据库名称放在每个表格前更容易。

从安全角度来看,我可以确保人们无法偶然访问错误的数据,但在此站点上将有管理员(网站上约10%的用户)需要访问所有数据库,进行跨数据库搜索。

进行单独数据库的原因是什么? (该网站使用PHP和MySQL。)

编辑:数据库的名称为:

  • sitename(实际网站名称)(常规类型)
  • member(会员数据)
  • siteconfig(网站配置)

5 个答案:

答案 0 :(得分:11)

纯粹猜测创作者心中的想法:

数据的体积可能存在差异,因此不同的物理dbs可能存在不同的备份/复制策略?

也许一个想法,说“一般类型”可以在多个应用程序之间共享,但“站点配置”,例如,只适用于一个应用程序?

可能认为不同的数据库可以放在具有不同性能特征的不同硬件上,例如RAID配置。与大量更新的数据相比,大量读取但未更新的数据。

再次,纯粹的猜测......

@Darryl - 我的答案是考古学而不是技术。我不是说我买了它。我只是想进入祖先的心态......

答案 1 :(得分:1)

同样纯粹的推测:也许这是支持分离关注的架构决策。

答案 2 :(得分:1)

我想不出为您列出的信息创建多个数据库的原因,特别是如果这些数据需要交叉链接。这听起来更像是某人不知道如何使用权限,因此不是授予对表的访问权限,而是仅创建新数据库。只是一个意见,但将事情简化为一个数据库可能会有所改善。

答案 3 :(得分:0)

@ Corey Trager:好主意,但是你当然可以指定要备份哪些表,以及在只更新其他表时只选择一些表会有多大差异?

答案 4 :(得分:-1)

如果有充分的理由将数据库拆分成一堆较小的数据库,那么数据库可能会有“hadronsupercolliderrawdata”和“googlebackup_2008”这样的名称。像“generaltypes”和“memberdata”这样的名字表明他们只是被愚蠢所淹没。