微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

php – SQL:保持行数或从数据库中选择计数

例如:我有2张桌子
分类
– 帖子

这是一个很好的方法来保持这样的类别的邮政编号

类别

 id |  title   | posts
----+----------+--------
 1  | golf     |  50
----+----------+-------
 2  | soccer   |  90
----+----------+-------

帖子

 id |  title   | category_id
----+----------+--------------
 1  | news 1   |  1
----+----------+--------------
 2  | news 2   |  2
----+----------+--------------
 3  | news 3   |  1
----+----------+--------------

或者我在这样的查询中使用select count()

SELECT c.id,
       c.title,
       count(p.id)
FROM `categories` c
INNER JOIN `posts` p ON c.id=p.category_id
GROUP BY c.id

但问题是当我在类别表中保持计数时,我必须更新类别表中的帖子字段.在小型项目中没有问题,但对于大型项目来说,处理数量的好方法是什么,因为我担心数据库性能

谢谢你的所有答案

解决方法:

我个人的偏好是不要在任何表格中保留重复数据,直到证明有必要为止.如果您反对编写JOIN查询,则可以定义包含查询的视图,然后您可以忘记它.

我在过去发现,正确的索引通常意味着没有太多的性能问题.

如果您发现有必要将计数摘要保留为类别表(出于性能或其他原因),请考虑在posts表上创建INSERT,UPDATE和DELETE触发器,以便可以由数据库完成更新,而不是依赖于应用程序程序员记住要做什么.

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐