2013-03-20 88 views
1

我当然不是Drupal的专家,但是我之前计划并构建了一些数据库,所以我对第三方团队正在研究的数据库结构感到困惑,因为我已经用Sequel Pro添加了一些Dummy内容。我认为如果使用Drupal的后端GUI,结构不会很明显,但我没有信任,只是ftp和ssh访问。Drupal数据库结构 - 高效/低效?

我是有点震惊地看到的不是单个表我本来期望,比如说,一个组织,与ID,姓名,地址,电子邮件,邮编列,等等,等等

相反,每个数据位都有一个表格。也就是说,一个单独的表名称,地址,电子邮件,邮政编码等等。

从逻辑的角度来看,这似乎令人惊讶地效率低下。例如,当组织页面加载时,为该组织加载的每一位数据都会从不同的表中调用并进行聚合,而不是通过调用单个表以及从一行中提取所有数据。

我是否无能为力(是的但...)或者这是Drupal特有的一些db结构特性?

+2

这就是你的EAV模型..实体,属性,价值。理论上很好,在实施中可怕。 – 2013-03-20 17:44:41

回答

1

是的。 Drupal将字段内容存储在单独的表中,以便它具有最大的灵活性(例如,如果您希望稍后在“组织”之外的其他内容类型上重新使用这些字段),它已经在多连接表中。权衡是性能,Drupal通过缓存等方式来弥补这一点(例如,当该组织节点被加载时,它将缓存它,以便如果再次在该页面请求中加载它,则不需要再次从这些表中读取,例)。由于它是一个功能强大的CMS,可让您构建和重新构建和重新组织存储内容和字段的方式,因此可更灵活地存储数据。

+0

谢谢你的洞察sceo, – Michael 2013-03-20 19:19:31

+0

抱歉,意味着完成这个想法。一个问题是,据我所知,没有身份验证没有缓存。所以任何未经验证的访问者都会将可能会对服务器造成不必要负担的东西放入其中。情景的一个例子就是宣布一个能够产生很多浏览流量的新事件。用户认证(登录)的唯一原因是rsvp。 – Michael 2013-03-26 18:45:34