下面是一个大学数据库,以及它的评级。下面是我的想法
因为我特别关注收视率。我想给一批人打分,在那里用经理或者一些模型的方法,我可以计算出总的院系或者学院的评分。你知道吗
注意:对于一个类,可能有许多不同用户的评分。所以,我想总评分或平均评分应该通过一种方法来完成!你知道吗
到目前为止我就是这样做的
class Rating(models.Model):
positive = models.FloatField(default=0)
negative = models.FloatField(default=0)
class College(models.Model):
name = models.CharField(max_length=200)
website = models.URLField()
class Department(models.Model):
name = models.CharField(max_length=200)
college = models.ForeignKey(College)
class Batch(models.Model):
passout_year = models.IntegerField(max_length=4)
department = models.ForeignKey(Department)
rating = models.ForeignKey(Rating)
此架构有一些问题!你知道吗
每批只能有一个等级!不过,我正在寻找由许多用户签署的多个评级(尽管用户模型尚未集成)
每批都属于一个系,每个系都属于一个学院。但是,我们也可以用另一种方式来思考这些关系
每个学院有多个系,每个系有多个批次。。每个批次有多个院系(例如:2009年可能有多个院系),每个院系可以在多个学院
那么,我应该用ManyToManyField而不是ForeignKey吗?你知道吗
我应该是什么样子?你知道吗
我认为最重要的变化之一是
class Rating(models.Model):
..
..
user = models.ForeignKey(django.contrib.auth.models.User)
class College(models.Model):
..
..
departments = models.ManyToManyField(Department)
class Department(models.Model):
..
college = models.ForeignKey(College)
batches = models.ManyToManyField(Batch)
class Batch(models.Model):
..
department = models.ForeignKey(Department)
rating = models.ManyToMany(Rating)
这样对吗?如果不是应该怎么看
谢谢
下面是:
当您建立多对多关系时,Django会自动创建一个桥接实体。你知道吗
相关问题 更多 >
编程相关推荐