2016-09-29 32 views
0
  1. 一些Companies代表一些PlaceTypes(健身房,游泳池等)。
  2. 不同PlaceTypes有評價不同Criterias(員工,清潔等)
  3. 根據公司的PlaceType這是必要的,以評估該公司

class Companies(models.Model): 
    name = models.CharField() 

class PlaceTypes(models.Model): 
    name = models.CharField() # Gym, pool, etc. 
    company = models.ForeignKey(Companies) 

class Criterias(models.Model): 
    name = models.CharField() # Staff, cleanness, etc. 
    place_type = models.ForeignKey(PlaceTypes) 

class Ratings(models.Model): 
    company = models.ForeignKey(Companies) 
    criteria = models.ForeignKey(Criterias) 
    votes = models.PositiveIntegerField() 
    total = models.PositiveIntegerField() 
運用適當指標分析

因此,在Companies -> PlaceTypes -> CriteriasCompanies <- Ratings -> Criterias之間存在某種重複。可以嗎?任何人都可以檢查模型之間的關係是否正確?

回答

0

您的評級模型中不需要公司作爲外鍵,該模型中已有標準,其place_type指向公司,即Companies -> PlaceTypes -> Criterias -> Ratings

+0

你確定嗎?如果我是正確的,在這種情況下,評級適用於PlaceTypes而不是公司,即具有相同PlaceType的所有公司獲得相同評分 – TitanFighter

+0

以您描述它的方式,我認爲您的每個PlacesType都屬於一家公司,但現在它似乎很明顯,您的意思是描述公司和地點類型之間的多對多關係,在這種情況下,我會從PlaceType中移除公司字段,而不是在公司模型中聲明以下內容:'place_types = models.ManyToManyField(' PlaceTypes')' – blhsing

相關問題