2

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

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

我应该将它保存为整数并使用常量(丑陋!!),还是像这样简单地保留它,因为它无论如何都不会产生巨大的影响?

4

1 回答 1

1

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

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

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

只需将选择存储在 StringProperty 中。

于 2013-10-02T19:06:23.287 回答