我在 Django 中有以下模型:
from django.db import models
class User(models.Model):
pen_name = models.CharField(max_length=30)
email = models.EmailField()
activated = models.BooleanField()
def __unicode__(self):
return self.email + '-' + self.pen_name
class Original_Work(models.Model):
title = models.CharField(max_length=25)
summery = models.TextField()
user = models.ForeignKey(User)
date_published = models.DateField()
one_shot = models.BooleanField()
def __unicode__(self):
return self.title + '-' + self.user.email
class Chapter(models.Model):
work = models.ForeignKey(Work)
title = models.CharField(max_length=25)
order_number = models.IntegerField()
class Review(models.Model):
chapter = models.ForeignKey(Chapter)
work = models.ForeignKey(Work)
date_published = models.DateField()
class Work_Subscription(models.Model):
user = models.ForeignKey(User)
to_work = models.ForeignKey(Work)
class User_Subscription(models.Model):
user = models.ForeignKey(User, related_name='user_owner')
to_user = models.ForeignKey(User, related_name='user_to')
class Alert(models.Model):
title = models.CharField(max_length=60)
# add type
link = models.CharField()
class Book(models.Model):
title = models.CharField(max_length=50)
author = models.CharField(max_length=50)
def __unicode__(self):
return self.title
在总结/解释中,每个用户“都有”作品。每部作品“都有”章节。每个章节“都有”一个评论和每个评论。还有其他事情,但我的问题也无关紧要。现在,每件“拥有”的东西都有一个“所有者”的外键。所以评论有一个章节的外键,章节有一个作品的外键等等。我的问题是,有什么更好的方法来做到这一点?现在,服务器必须查看所有评论才能找到哪些属于作品。有没有办法加快/改进查找过程?
编辑:我通常需要按照以下方向访问数据用户 -> 工作 -> 章节 -> 审查。这意味着服务器知道用户是什么,并被要求查找用户所做的所有工作。这与了解工作并找到用户相比。