gpt4 book ai didi

php - SQL : keep count in row or select count from db

转载 作者:可可西里 更新时间:2023-11-01 07:59:25 24 4
gpt4 key购买 nike

例子:我有2张 table
- 类别
- 帖子

将帖子编号保留在这样的类别中是一种好方法吗

类别

 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 查询,您可以定义一个包含查询的 View ,然后您就可以忘记它了。

我过去发现,适当的索引通常意味着不会有太大的性能问题。

如果您发现有必要在您的类别 表中保留计数摘要(出于性能或其他原因),请考虑创建INSERTUPDATEDELETE 触发你的 posts 表,这样更新就可以由数据库完成,而不是依赖应用程序程序员记住必须做什么。

关于php - SQL : keep count in row or select count from db,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13929356/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com