在Django中构建具有深度依赖性的数据库的正确方法是什么?

时间:2015-01-14 07:40:43

标签: python django database-design django-models

对于示例,我有类似这样的内容:User-> Company-> Worker-> SomeStuff-> SomeDeeperStuff 直道看起来像:

class Company(models.Model):
    user = models.ForeignKey(User)
class Worker(models.Model):
    company = models.ForeignKey(Company)

依此类推......这对我来说似乎是正确的方式。 但有时我想创建一个快捷方式并将ForeignKey(User)添加到所有其他模型(Worker,SomeStuff ...)。 那么正确的方法是什么?禅道?如果我的直道最好,那么为用户过滤内容的最佳方式是什么?

1 个答案:

答案 0 :(得分:0)

Denormalization不是正确的方法,但如果您遇到性能问题,可以使用它。你有大量的数据,你加入的查询很慢吗?

获取用户数据的最佳方式是标准联接:

SomeDeeperStuff.objects.filter(somestuff__worker__company__user=user)