0

我有一个 drupal 站点,正在尝试使用 php 从我的数据库中获取一些数据。我需要做的是在用户的个人资料中显示他们是第一个评论场地的人有多少次(就像 Yelp 的“第一”计数一样)。我正在考虑两种选择,并试图确定哪种方法更好。

第一个选项:第一次审查场地时,将审查者的用户 ID 的值保存到数据库中的表中。该表将专用于存储第一个用户的 UID 以查看每个场地。然后,使用一个简单的查询在用户的个人资料中显示他们的 UID 在此表中出现的次数。

第二种选择:使用一组更复杂的查询来显示用户配置文件中的计数,而不在数据库中存储任何额外数据。这将依赖于几个查询,这些查询必须按照以下方式做一些事情:

  1. 查找用户创建的每条评论的 ID
  2. 检查每个评论中包含的场地ID
  3. 根据评论中存储的场地 ID 对每个场地进行第一次审核
  4. 获取作者的 User ID 进行第一次审核
  5. 检查这些作者 UID 中的哪些(如果有)与当前用户的 UID 匹配

我假设这将涉及在第一步中创建一个 ID 数组,然后以某种方式为数组中的每个项目执行每个步骤。查询中还会涉及 3 或 4 个不同的表。

我对编写 SQL 查询比较陌生,所以我想知道执行一组可能更长的查询是否会更好,或者使用小型数据库并使用小得多的计数查询来代替。有什么方法可以比较两者的优势,还是比较苹果和橘子?

4

1 回答 1

1

存储的额外数据量可以忽略不计;处理的简化将很重要。数据不会改变(第一个查看场地的人不会改变),因此更新负担可以忽略不计。使用额外的数据和更简单的查询。

于 2012-12-09T03:32:07.333 回答