1
我在Django以下模型: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
在夏日/解釋每個用戶「有」工程。每個作品都有「章節」。每章都有「評論」和每一篇評論。還有其他的東西,但這些都不重要,我的問題。現在,每個「擁有」的東西都有一個外鍵,它是「所有者」。所以一篇評論對於一章有一個外鍵,而對於一篇作品有一章是外鍵等等。我的問題是,有什麼更好的方法來做到這一點?現在,服務器必須查看所有評論,才能找出哪些評論屬於作品。有沒有辦法加快/改進查找過程?
編輯:我通常需要在以下方向訪問數據User - > Work - > Chapter - > Review。意味着服務器知道用戶並被要求查找用戶完成的所有工作。這與知道工作和找到用戶。
從你的問題中不清楚你想查找的是什麼。你想要一個連接到特定所有者的所有評論清單嗎?或者您是否想在評論鏈的頂部找到作者?要麼...? – shacker 2012-07-25 03:22:05
@shacker第一個。 – 2012-07-25 03:22:44