把字数统计在数据库中

时间:2014-03-15 02:54:59

标签: django database-design django-models

我在数据库上有很多网站,我想跟踪每个网站中使用的顶级单词,我不想每次都计算这个。 (一次估计足够好)

我能想到如何做到这一点的唯一方法就是拥有一个单词和计数模型。请告诉我这样做的更好方法是什么?

class Word(models.model):
    name=
    count=
class Url(models.model):
    address=
    words_used=models.ManyToManyField(Word)

我的模型存在的问题是,对于同一个单词的不同计数,我需要多行。

1 个答案:

答案 0 :(得分:0)

您需要通过明确定义,https://docs.djangoproject.com/en/dev/ref/models/fields/#django.db.models.ManyToManyField.through

将计数添加到直通表中
class Word(models.Model):
    name=


class Url(models.Model):
    address=
    words=models.ManyToManyField(Word, through='WordCount', through_fields=('word','url'))


class WordCount(models.Models):
    word=models.ForeignKey(Word)
    url=models.ForeignKey(Url)
    count=

请记住,您可能希望word.name和url.address是唯一的,并且不区分大小写,因此在保存/比较之前将它们小写:)