【问题标题】:How to organize news/ratings/comments database?如何组织新闻/收视率/评论数据库?
【发布时间】:2011-10-09 16:11:56
【问题描述】:

我的网站将有可能对它们进行评分并离开 cmets 的新闻。每个用户只能对一条新闻进行一次评分,并且只能留下一条评论。同时,我应该知道哪个用户对新闻进行了评分,谁发表了评论。

如何组织这样的数据库?

我想到了以下结构:

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()

这是正确的方法吗?我会知道谁对特定新闻发表了特定评论吗?

【问题讨论】:

  • 它是一个对象模型 - 在类名中去掉复数。

标签: google-app-engine google-cloud-datastore


【解决方案1】:

您当前的模型只允许每个新闻项目有一个评级和一个评论(每个都可以属于任意数量的新闻项目)。相反,将ReferenceProperty 放在NewsRatingsNewsComments 上,引用它们所属的News 项。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多