2015-09-05 71 views
0

作为一个警告:我在这里是一个完全新手。我不会感到惊讶,因为我已经回答了这个问题,但是我找不到它,因为我缺乏描述问题的词汇,或者b)我的问题基本上是愚蠢的,因为我想要做的是愚蠢。在NDB模型中存储对非NDB对象的引用

是否有某种方法可以存储定义并存储在活动内存中的类实例的引用,以及存储在NDB中的而不是?我正在尝试编写一个应用程序,可以帮助管理MMO中的许多角色/公会。我有一个类CharacterClass,它包括我在main.py中定义的属性,如装甲,名称等,作为基本的python对象,然后为游戏中的每个类定义属性。将存储在数据存储中的每个字符将具有属性charClass,该属性将是对CharacterClass的那些实例之一的引用。理论上我将能够做的事情一样

if character.charClass.armor == "Cloth": 

同时存储潜在的数百个独特的角色和在数据存储的specifc数据,但没有为每一个布装甲角色作成“布”的副本,或查询数据存储每天穿上几千次的法师。

我不知道在Character中使用什么样的NDB属性来存储对适用的CharacterClass的引用。或者如果这是正确的做法,甚至。感谢您花时间来解答我的疑惑问题。

回答

0

一个字符串就是你所需要的。您只需根据字符串值获取该类。您可以创建一个自定义属性,以自动实例化引用上的类。

但是我有一种感觉,硬编码代码中的值可能有点笨拙。也许你的角色类实例也应该是数据存储实体。这意味着您可以在不部署新代码的情况下调整这些参数。

如果你想在内存中使用这些对象,那么你可以预热缓存它们。

+0

谢谢!我认为我的思维问题并没有真正掌握memcache的工作原理,正如你所说,试图对这些进行硬编码是没有意义的,因为这些数据会被大量使用,所以应该留在memcache中。 –