【问题标题】:GAE datastore group entity pro and consGAE 数据存储组实体的优缺点
【发布时间】:2014-08-02 19:00:55
【问题描述】:

我在 GAE 下为处理学习者评估的数据库建模。所以假设我有这个:

class Assesment(db.Model):

    usrId= db.StringProperty(required=True)
    subjectID= db.StringProperty(required=True, choices=set(["math", "Eng", "art"]))
    when= db.DateTimeProperty(auto_now_add)
    score= db.IntegerProperty()
    solved= db.BooleanProperty()

我还有另外两个模块,一个用于Learners 属性,例如姓名、地址、电子邮件,另一个用于Subject 信息,例如名称、提示、video_url .. ETC 我知道我必须忘记与经典 DBMS 建模相关的任何事情。

我是否应该将所有模块(AssessmentLearnersSubjects)保留在同一组实体中,以及每秒 1 次写作将如何影响网站实施后的性能。 如果没有,我的评估模块可以处理多少属性而不会缩小。

【问题讨论】:

    标签: python google-app-engine entity google-cloud-datastore ancestor


    【解决方案1】:

    通常,没有理由将所有模型保留在同一个实体组中。您制造了一个主要的性能瓶颈而没有任何好处。

    当需要强一致性或事务时,需要单个实体组(父子关系),这是一个相对罕见的用例。有时,为了方便检索数据,可能会使用父子实体关系,但您必须仔细权衡每个用例。

    我不确定您所说的“缩小”是什么意思,但如果您担心性能不会明显下降,除非您有数百个属性,在这种情况下,最好将经常更新的属性与很少更新的属性分开属性到不同的实体中。

    【讨论】:

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