对于示例,我有类似这样的内容: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 ...)。 那么正确的方法是什么?禅道?如果我的直道最好,那么为用户过滤内容的最佳方式是什么?
答案 0 :(得分:0)
Denormalization不是正确的方法,但如果您遇到性能问题,可以使用它。你有大量的数据,你加入的查询很慢吗?
获取用户数据的最佳方式是标准联接:
SomeDeeperStuff.objects.filter(somestuff__worker__company__user=user)