やや強い制約がある。
制約については、下記に書いてあるとおりになるのだけど、
http://code.google.com/intl/ja/appengine/docs/java/datastore/queriesandindexes.html#Restrictions_on_Queries
簡単に書いておくと下記のような感じ
- 不等号のWhere条件は、1つのカラムしか指定できない
- OR条件や否定の条件は利用できない
- 当然、計算式を含む条件も設定できない
これを回避するためには、データの設計についても
従来のRDBとは異なる設計をしなくてはいけない。
おそらく、下記のようなプロパティを持つオブジェクトが合った時に
・賛成意見
・反対意見
反対意見が50%を超えるものを検索するというようなアプリケーションを作る場合には、
従来のRDBであれば、「反対意見>賛成意見」みたいなWhere節を書けばいいのだろうけど
Google App Engineの場合には、更新時に、平均値も計算して保管しておく必要が
あるのだと思う。
そして、「平均値>50%」みたいな検索をすることになると思う。
実際に、データ型を決めてみたら結構気持ち悪いくらい冗長なデータ型になってしまった
一応、下記のような記事もあったので、メモがてらにリンクしておく。
クラウド環境ではデータベースは「非正規化」して使う?
0 件のコメント:
コメントを投稿