我的网站会有新闻,可以给他们打分并发表评论。每个用户只能对一个新闻评分一次,只留一个评论。与此同时,我应该知道哪个用户对新闻进行了评分以及谁留下了评论。
如何组织这样的数据库?
我考虑以下结构:
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()
这是正确的做法吗?我是否知道谁对特定新闻留下了特别评论?
答案 0 :(得分:1)
您当前的模型仅允许每个新闻项目具有单个评级和单个评论(每个评论可以属于任意数量的新闻项目)。相反,将ReferenceProperty
放在NewsRatings
和NewsComments
上,引用它们所属的News
项。