探讨在数据库设计中,主键应该选择 int 还是 bigint。通过分析存储成本、系统风险以及现代工程的统一规范,解释为什么在大多数场景下“无脑 bigint”才是降低心智负担和系统风险的最优解。
thinkphp 模型withCount方法如何指定COUNT字段
请注意
该文章已超过 820 天未更新,请确认内容是否正确
ThinkPHP 模型中的 withCount 方法是一个非常实用的功能,它可以帮助我们快速地获取关联模型的计数信息。然而,有时候我们可能想要指定 COUNT 字段,而不是使用默认的计数字段。本文将介绍如何在 ThinkPHP 模型中使用 withCount 方法来指定 COUNT 字段。
需要修改vendor生成文件
路径
\vendor\topthink\think-orm\src\db\concern\ModelRelationQuery
源代码
public function withCount(string|array $relation, bool $subQuery = true)
{
return $this->withAggregate($relation, 'count', '*', $subQuery);
}
修改为
public function withCount ($relation, bool $subQuery = true, string $field = "*")
{
return $this->withAggregate($relation, 'count', $field, $subQuery);
}
Tips:需要注意composer更新以后 是否覆盖修改过的代码
延伸阅读:
数据库主键:该选 int 还是 bigint?一场关于“工程直觉”与“心智负担”的博弈
2026程序员生存指南:不卷技术,只做“有价值”的开发者
写给程序员的2026生存指南:告别无效技术内卷,聚焦AI Agent开发、低代码开发、性能优化3个高价值方向,分享程序员成长干货,助力开发者做有价值的技术人。
一篇看懂:MySQL状态字段设计,ENUM 和 TINYINT 我该怎么选?
为状态字段选择正确的数据类型是数据库设计的基础。本文用最直观的方式,为你解析 ENUM 和 TINYINT 的优缺点。无论你是刚入门的新手还是寻求规范的开发者,都能快速理解何时该为了可读性选择 ENUM,何时又该为了灵活性拥抱 TINYINT。
为什么平台都不管你 key 泄露?
很多开发者疑惑:如果我的 API-Key 被盗了,为什么平台方(比如腾讯云、OpenAI)都不报警、不封禁?他们难道不负责吗?本篇文章将深入解析开放平台认证背后的“边界责任模型”,帮助你厘清平台方与调用方之间的安全分工与责任归属,避免你为他人的低级错误背锅。
PHP 项目中的安全防护实战技巧
本文详细阐述了 PHP 项目中常见的安全威胁,并提供了具体的实战防护技巧,涵盖 SQL 注入、XSS 攻击、文件包含漏洞等多个方面,帮助 PHP 开发者构建安全可靠的应用程序。
深度探索 PHP 8 注解:从基础概念到高级应用
本文全面深入地探讨了 PHP 8 注解,从基础概念、原理分析到自带注解详解与高级应用实践,为开发者提供了关于注解的全方位知识体系,助力其熟练掌握并运用这一强大特性。