Django中的OneToMany或ManyToOne的任何替代方案

时间:2017-01-11 22:50:09

标签: python sql django django-models

我在Django中有 NOTIFICATION USER 应用。 代码类似于:

class Notification(models.Model):
    user = models.ForeignKey(User , related_name = "notification"
    ....
    ....

class User(models.Model):
    notifications = models.OneToManyField(Notification , related_name = "user"
    ....
    ....

现在我知道Django中不存在 models.OneToManyField 。 我得到的事实是我可以从模型的通知实例中简单地访问用户。但我想这会以某种方式减慢我的系统,因为在生产中我会保留通知模型的所有实例。 例如:一旦系统投入生产很长时间,我预计每个用户会收到大约500多个通知。

我想,直接访问一个用户的所有通知,而不是筛选整个通知表以查找特定用户的通知,这样会更容易。
我在某种程度上阅读了this和文档,但我无法找到解决问题的方法。

此外,我不确定处理器的处理限制,以从整个通知表中获取所有通知。我只是假设它会慢一些。

1 个答案:

答案 0 :(得分:4)

Django中不存在

OneToManyField,因为它只是ForeignKey的反向关系。因此,您不需要notifications模型上的User字段,只需将其删除即可。

不要过早担心过滤通知的效果。查询关系是SQL的设计目标,这就是关系数据库擅长做的事情。