2

Google App Engine の python ndb データストアでは、enum フィールドを保存する必要があります。StringProperty にはchoices、列挙値をリストできるオプションがあることがわかります。

ただし、実際のデータストアでは通常の文字列として保存されているように見えますが、これは最適なサイズではないと思います。これはこれを行うための正しいアプローチですか?

整数として保存して定数を使用する必要がありますか(醜い!!)、それとも大きな違いはないので、そのままにしておく必要がありますか?

4

1 に答える 1

1

StringProperty クラスの Python ソース コードを見ると、渡された選択肢の値は検証のために Property スーパークラスでのみ使用されます: http://pastebin.com/N6s0TaXU

どちらの方法でも、選択肢の構成はハードコードされています: StringProperty パラメータとして、または選択肢を列挙値にマップする dict のいずれかです。

列挙型を処理するための追加機能を作成/維持するコストは、おそらく、列挙型と文字列を格納することによるデータベース領域の節約に見合うものではありません。

選択肢を StringProperty に保存するだけです。

于 2013-10-02T19:06:23.287 に答える