我有一个数据库表,名为“Tags”:
ID | Name | Uses
------------------------
1 | Python | 0
2 | Java | 0
3 | C++ | 0
4 | Ruby | 0
我有另一个表“TagMap”,用于将这些标记映射到用户,每个用户可以有多个标记。在
我想查询TagMap表以查找每个标记被使用的总次数,然后将其保存到该标记的“Uses”列中。例如,如果5个用户有标记“Python”,那么我希望“Uses”列读取“5”而不是“0”。在
我已经在网上找过怎么做,但我的主要问题是我不确定我应该搜索什么,任何帮助将不胜感激。在
Django将允许您查询您的
TagMap
模型(假设这里有一个Django模型),以获取给定标记对应的条目数。在然后,您将能够在对ORM的单独调用中更新使用计数器。在
使用原始SQL查询,您可能可以在单个查询中同时完成这两项任务,但Django ORM不允许这样做(另请参见Django subquery in insert)。在
根据您的并发需求,如果您想坚持使用ORM进行这种非规范化,那么在第一个查询中使用
select_for_update
可能有助于实现隔离。在相关问题 更多 >
编程相关推荐