Yuta Watanabe's Blog

開発周りと、その他諸々

データの生成/読出し/更新/削除を行う ( Part 2 ) - Microsoft Azure Mobile Services ( JavaScript バックエンド )

こんにちは。

マイクロソフトの渡辺です。

データの生成/読出し/更新/削除を行う ( Part 1 ) - Microsoft Azure Mobile Services ( JavaScript バックエンド ) に続き、Part 2 です。

※これまでの記事

Part 1 では、データの基本操作について確認しました。Part 2 では、もう少し細かい機能について見ていきたいと思います。

動的スキーマで新しい列が生成される

通常データベースには、あらかじめ定義されたスキーマに基づいてデータの挿入または更新のリクエストを行います。

一方、JavaScript バックエンドのモバイルサービスでは、動的スキーマを使用することができます。動的スキーマは既定で有効です。

f:id:yuwata:20140821120544p:plain

動的スキーマを有効にすると、データの生成または更新のリクエストした際に送られた JSON オブジェクトに基づいて、モバイルサービスが自動的に新しい列をテーブルに追加します。

つまり、あらかじめ定義されてはいなかった列についても、リクエストを投げると勝手に追加してくれるという形です。型についてはデータの内容から推定されて自動決定されます。

例えば下図のようなスキーマの状態の場合を見てみましょう。

f:id:yuwata:20140828173809p:plain

列には、dynamic 列や date 列はありませんでしたが、リクエストとして投げる JSON オブジェクトに含めてみます。

dynamic-scheme-test

実行すると、スキーマが下図のように変更されています。型がデータから推定され自動的に列が追加されていることがわかります。

f:id:yuwata:20140828173835p:plain

動的スキーマの機能はアプリ開発を進める上で便利な機能ですが、実際にアプリを公開する前に無効にすることをお勧めします。

また、1点注意としては、作成された列のデータ型はモバイルサービスからその後変更することができません。型を変更したい場合は、その先につながっている SQL データベースを直接変更する必要があります ( 参考:「 Microsoft Azure Mobile Service でのデータ アクセスの仕組み 」)。

テーブルからデータを読み出す:応用編

前回の データの生成/読出し/更新/削除を行う ( Part 1 ) では、基本的なデータの読出し方法を確認しました。ここでは、様々な条件を指定して、データを読み出してみます。

data read method of azure mobile services

その他の、様々なデータ読出しの方法については、「 方法:モバイル サービスのデータを紹介する 」( HTML クライアントの使用方法 - Azure モバイル サービス )にヒントがありますので、ご参照ください。