我在一个数据库中创建了两个表:Entry
和Nation
。每次创建新条目时,用户都必须填写与之相关的国家。因此条目有两个字段:Content
[charfield]和Nation
[a foreign key to a Nation]。问题是,在这个网站的主页上,最受欢迎的国家是按照他们有多少个条目的顺序来显示的。经常查找Entry
表中与每个Nation
相关的外键数似乎效率低下,因此我想知道如何保留一个计数器。我的意思是,如果我为国家创建一个额外的整型字段,我如何使它使得每次创建一个条目时,正确的国家增加1,而每次销毁一个条目时,正确的国家减少1。你知道吗
你可以用aggregation。这样,您的模式保持规范化,并且您的数据不存在不一致的可能性。你的问题似乎相当于这里引用的一个例子。试试这个:
您可以使用^{} 信号,它在
save()
方法的末尾发送。你知道吗首先,将
counter = IntegerField(default=0)
添加到Nation
模型中。你知道吗然后,每次创建新的
Entry
时,增加该计数器。你知道吗然后,您可以通过一个简单的查询对
Nation
进行排序:相关问题 更多 >
编程相关推荐