是StringProperty,是否有针对枚举值优化的选项?

时间:2013-10-02 15:44:27

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

在Google App Engine,python ndb数据存储区中,我需要保存枚举字段。我看到StringProperty有choices选项,我可以在其中列出枚举值。

但是,它看起来像在实际数据存储区中它们被保存为常规字符串,这在我假设的大小上并不是最佳的。这是正确的做法吗?

我应该将它保存为整数并使用常量(丑陋!!),或者只是保留它,因为它无论如何都不会产生巨大的差异?

1 个答案:

答案 0 :(得分:1)

查看StringProperty类的python源代码,传入的选项值仅在Property超类中用于验证:http://pastebin.com/N6s0TaXU

无论哪种方式,选择的配置都是硬编码的:作为StringProperty参数或在将选项映射到枚举值的字典中。

编写/维护处理枚举的额外功能的成本可能不值得存储枚举与字符串的数据库空间节省。

只需将选项存储在StringProperty中。