将其他信息保存到MYSQL数据库并使用简单查询,还是使用复杂查询?

时间:2012-12-09 02:33:28

标签: php mysql

我有一个drupal站点,我正在尝试使用php从我的数据库中获取一些数据。我需要做的是在用户的个人资料中显示他们是第一个审核场地的人数(完全像Yelp的“First”记录)。我正在考虑两种选择,并试图决定哪种方法更好。

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

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

  1. 查找用户创建的每条评论的ID
  2. 检查每次审核中包含的场地ID
  3. 根据评论中存储的场地ID,对每个场地进行首次评审
  4. 获取第一次审核的作者的用户ID
  5. 检查这些作者UID中哪些(如果有)与当前用户的UID匹配
  6. 我假设这将涉及在第一步中创建ID数组,然后以某种方式执行数组中每个项目的每个步骤。查询中还涉及3或4个不同的表。

    我对编写SQL查询比较陌生,所以我想知道执行可能更长的查询集是否更好,或者采用小数据库命中并使用更小的计数查询。有没有办法比较两者的优点,还是比较比较苹果和橘子?

1 个答案:

答案 0 :(得分:1)

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