我是数据库对象设计的新手,所以请原谅我的问题中的任何奇怪之处。基本上,我使用Google AppEngine(Python)并构建一个对象来跟踪用户信息。其中一项数据是40项成就分数。我是否在User对象中创建了一个int列表?或者,我是否使用我的用户ID,成就指数(0-39)和分数创建一个单独的实体,然后在每次想要获取用户数据时进行查询以获取这40个项目?
后一种方法对我来说似乎更加面向对象,如果我扩展它以获得超过这40项成就的分数,肯定会更好。但是,考虑到我可能不会扩展它,我是否应该考虑在我的用户数据中只做一个40个整数的简单列表?然后,我会放弃进行查询,获取已排序的成就列表,从每个成绩中读取得分以处理回复等。
这种后一种做法是否只是这样一种常见的做法,并且手动挥手,甚至不值得抨击睫毛,因为它认为它可能是更昂贵或更复杂的处理方式?
答案 0 :(得分:2)
我喜欢保留40 int
列表的简单想法,但您不能强制将其提供给App Engine的现有User类,其布局由GAE API确定(和不包括那些40 int
s。因此,该列表将不可避免地需要存在于单独的实体中(即,单独模型的每个实例)。