私は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
夏の/説明では、各ユーザーは「持っている」作品を持っています。各作品には章があります。各章には、レビューと各レビューが「あります」。他にもありますが、私の質問ではそれらは重要ではありません。現在、「所有」されているものにはそれぞれ、「所有者」への外部キーがあります。したがって、レビューには章への外部キーがあり、章には作品への外部キーがあります。私の質問は、これを行うためのより良い方法は何ですか?現在、サーバーはすべてのレビューを調べて、どのレビューが作品に属しているかを見つける必要があります。ルックアッププロセスをスピードアップ/改善する方法はありますか?
編集:私は通常、次の方向でデータにアクセスする必要があります。ユーザー->作業->章->レビュー。サーバーがどのユーザーを知っているかを意味し、ユーザーが行ったすべての作業を見つけるように求められます。これは、仕事を知り、ユーザーを見つけることとは対照的です。