【问题标题】:Drupal Database Structure - Efficient/Inefficient?Drupal 数据库结构 - 高效/低效?
【发布时间】:2013-03-09 23:30:04
【问题描述】:

我当然不是 Drupal 专家,但我之前已经计划并构建了一些数据库,所以我对第 3 方团队正在研究的数据库结构感到困惑,我让 Sequel Pro 加入其中以添加一些虚拟内容。我认为如果使用 Drupal 的后端 GUI,结构不会很明显,但我没有凭据,只有 ftp 和 ssh 访问权限。

看到没有我所期望的单个表,例如一个组织,我有点害怕,其中包含 ID、名称、地址、电子邮件、邮政编码等列。

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

从逻辑的角度来看,这似乎是非常低效的。例如,当一个组织页面加载时,为该组织加载的每一位数据都从不同的表中调用并聚合,而不是通过调用单个表的方式,然后从一行中提取所有数据。

我是一无所知(是但是...)还是这是 Drupal 独有的一些数据库结构特性?

【问题讨论】:

标签: mysql data-structures database-design drupal database-normalization


【解决方案1】:

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

【讨论】:

  • 抱歉,本来想结束这个想法的。一个问题是,据我了解,没有身份验证就没有缓存。所以任何未经身份验证的访问者都会在服务器上放置可能过度的负载。一个场景的例子是一个新事件的公告,它产生了大量的浏览流量。用户进行身份验证(登录)的唯一原因是 rsvp。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-10
相关资源
最近更新 更多