2011-10-09 37 views
1

我的網站將有新聞可能評分他們並發表評論。每個用戶只能對一條新聞評分一次,只留下一條評論。同時,我應該知道哪個用戶對新聞進行了評級,誰留下了評論。如何組織新聞/評級/評論數據庫?

如何組織這樣的數據庫?

我想想以下結構:

class News(db.Model): 
    news = db.TextProperty() 
    added = db.DateTimeProperty(auto_now_add=True) 
    rating = db.ReferenceProperty(NewsRatings) 
    comments = db.ReferenceProperty(NewsComments) 
    added = db.DateTimeProperty(auto_now_add=True) 

class NewsRatings(db.Model): 
    user = db.ReferenceProperty(Users) 
    rating = db.IntegerProperty() 
    added = db.DateTimeProperty(auto_now_add=True) 

class NewsComments(db.Model): 
    user = db.ReferenceProperty(Users) 
    comment = db.TextProperty() 
    added = db.DateTimeProperty(auto_now_add=True) 

class Users(db.Model): 
    user = db.IntegerProperty() 

它是正確的做法?我是否知道誰對特定新聞留下了特別的評論?

+1

它是一個對象模型 - 在類名中放置複數。 – topchef

回答

1

您目前的模型只允許每個新聞項目有一個評級和一個評論(每個評論可能屬於任意數量的新聞項目)。相反,將ReferenceProperty放在NewsRatingsNewsComments上,參考它們所屬的News項目。