1

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

我还有另外两个模块,一个用于学习者属性,例如姓名、地址、电子邮件,另一个用于主题信息,例如名称、提示、video_url ..etc 我知道我必须忘记与经典 DBMS 建模相关的任何内容。

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

4

1 回答 1

0

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

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

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

于 2014-08-03T02:41:12.597 回答