python - 获取 Django 中查询集的计数
问题描述
我正在制作一个医生预约系统,我想计算我在特定日期有多少预约,所以不要这样做:
appointments_count = Appointment.objects.filter(user = user, date = specific_date).count()
如果我制作另一个表来跟踪每个日期的约会计数会更有效吗,以避免更多的 i/o 磁盘操作
class Date_Counter(models.Model):
doctor = models.ForeignKey(Doctor, on_delete=models.CASCADE)
date = models.DateField()
count = models.PositiveIntegerField(default=1)
并感谢大家
解决方案
永远不要硬编码可以通过查询获得的字段(这是关系数据库的基本规则)。如果使用第二种方法,则需要始终更新计数,因此性能也最差。
推荐阅读
- laravel - 来自控制器的 Laravel 重定向给出“此路由不支持方法”错误
- database - 是否有理由不将加密数据作为二进制存储在数据库中?
- prometheus - Prometheus - 基于标签算法的条件
- javascript - 方法未定义,同时定义了几行
- sql - 匹配组合
- python - 联邦学习训练期间模型性能没有提高
- cube.js - Cube.js:无效的令牌
- java - Spring Data JPA/Hibernate LazyInitializationException
- python - 为什么我的 Python BZ Oregonator 无法编译?
- django - 如何根据子查询获取计数?