2013年10月26日土曜日

データベース Memento Database 実用編

Memento Databaseってどんなものかが何とな~く分かりましたよね。
でも、データは貯めるだけでは何の意味も持ちません。
データを活用することで初めてデータベースを実用的に使えてると言えますね。
って恥ずかしくて言えないくらいにしか使えてません。

ま、度重なるアップデートで更に使いやすくなったMemento Databaseなので、今まで使ってたライブラリを見なおして少しでも使いやすくしてみましょう。

別ライブラリへのリンクが出来るようになったことは、個人的には大きな進歩なんですね。
データベースって大抵は複数のレコードに同一の情報が登録されがちですよね?
簡単な所で言えば、映画や音楽のジャンルですよね。こう言うのは選択形式にした方が良いのですが、消耗品の購入管理なんかで取引相手の連絡先などだと、取引先の名前や、連絡相手の名前、電話番号やメールに住所と複数の情報を登録する事になりますね。こんな場合には複数のレコードに同じ情報を登録せずに、連絡先データベースにリンクさせることでデータ量の節約や、入力を簡易化、更に情報更新時の容易化にもなりますね。

な~んて事を書きつつも、そんな大層な使い方なんてしてませんけどね。


では実際に作っていきましょう。元々使っていた消耗品ストック管理データベースを流用します。
簡単に言えば、買い置きの購入漏れチェックリストです。買い物リストとも言いますね。

元はストック数を登録できるデータベースでしたが、これを消耗品の品目データベースにしましょう。
ストック数や購入店、購入価格などを削除して、プロダクトリスト化します。
このデータベースは、固定情報を扱うデータベースで、基本的には他のデータベースからリンクされるので、新たに共有データベースグループを作成して移動しましょう。普段使いのデータベースと同じ画面に並んでると邪魔になりますからね。

登録されている情報を見て分かる通り、日用雑貨の買い置き管理に使う商品情報ですね。


これとは別に在庫管理グループを作って、そのグループに生活用品データベースを作りましょう。
このデータベースで日用雑貨の買い置き管理をする訳ですね。
アイコンがオードリーなのは、お試しで作ったデータベースを流用したからです。流用と言ってもフィールドは全て作り直してるんで、新規作成と変わりませんが。


データベースのフィールド構成も結構簡単です。
品名が生活消耗品データベースのリンクになっていて、コレをレコードの名前に使いましょう。
補充日/使用日には、買い置きを購入した日付や、買い置きから取り出した日付を入力するようにしましょう。
初期値を今日にしておけばマメに入力する人は登録時の使い勝手が向上するでしょう。


補充数/使用数も、買い置きを購入した数量や、買い置きを使い始めた数量を+ー付きで入力します。
購入すれば+、使えばーにする事で残数を計算できるようにしておきましょう。
えっ?そんなルール忘れちゃうよ!
そうですね。しかも、作り手が使い手とも限りません。
作り手の意思を伝えないと難しいフィールドって有りますよね?
テキスト属性や数値属性のフィールドに限りますが、説明を表示させる事が出来ます。

Field nameを設定する欄の下に、もう一行の欄が有りますね。ここにルールを書いておきましょう。
これで、データ登録時にカラムが空の時に表示されるようになります。
注意点として、初期値を設定していると初期値が表示されるので、カラムを空にしないと説明が表示されません。


その他に、購入時の単価も入力出来るようにしておけば、次に買う時の値段の目安にしたり、チラシで見付けたものの値段が安いのかどうか分かるようになりますね。因みに私は主婦ではありません。SEってやつです。
で、単価を入力させておけば、数量と単価で当日の支払金額も計算できますね。
総額は演算属性のフィールドです。
補充数×単価=総額の単純な計算です。


この演算フィールドは追々使い勝手を見ていきたいと思ってますが、今回は単純計算にしておきましょう。

で、購入店ですね。店によって安いものの種類が違うし、品揃えの片寄りもありますね。なるべく出費を押さえたり、何かのついでに近い店で買っておくなんて使い方をするには、購入店の管理も重要です。店毎の値段の目安にも使えますね。繰り返しますが私は主婦ではありません。SEです。
因みに、折角なので連絡先へのリンクフィールドにしてますが、購入店管理データベースを作ってリンクさせる方法もありますね。でも、Androidの連絡先機能は案外優秀なので利用します。が、実際には購入店情報は連絡先に登録してないんで、今のところこのフィールドは空で登録してますけどね。

今回のデータベースは在庫管理なので、買い置きの残数が分かるようにトータル演算をします。
MASS CALCULATIONに買い置き数計算を追加します。
Sum by 補充数/使用数ってトコですね。ここで加算処理することで残数を算出します。この計算のために、補充数/使用数で+ーの入力をさせるようにしたんです。

もう一つ入れておきたいのが単価ですね。最安値を表示するか、平均を表示するかで迷いましたが今回は平均を表示させました。

これでデータベースは完了です。
作りながら臨機応変に進めたので結構な時間はかかりましたが、それでも20分程度です。
データを登録した後は、フィールドの属性変更が出来なくなるので、属性だけはシッカリと決めておきましょう。

さて、データベースが完成して満足していてはダメです。
データを登録して活用できて初めて実用的なデータベースになります。

で、早速データを登録しました。
ん~?唯一履歴になってるのがスクラブですね。3レコードあります。
整数が購入で負数が使用ですね。
あれ?時系列じゃないですね?新しい情報が上にあるんですね。


日付で昇順に並び替えてみましょう。
画面の右から左にスワイプすると表示されるSortで、補充日/使用日を昇順にします。


う~んと、今度は品名の順序がバラバラになりましたね。当然ですね。


ではソートキーを複数にしましょう。
第一キーを品名に、第二キーを日付にします。
お~欲しかった並びになりましたね。
で、スクラブの買い置き数は何個なの?
ん?分からへん!
自分で計算すれば1って分かりますが、それではデータベース化した意味が薄れますね。
なにより1000レコードの履歴があったら自分で計算する気になりません。
画面の下には、平均単価と残数が表示されてますが、これは全レコードの演算結果なのでスクラブだけの演算結果では有りません。


これでは意味がないんで、次にグルーピングします。
品名でグルーピングすることで、各品名のレコードがラベル配下にグルーピングされます。
グルーピングされたラベル毎に平均単価や残数が算出されてますね。これで、スクラブの平均単価や残数が一目で分かりますね♪


元のレコードを参照した場合は、ラベルの左側にある下向き矢印をタップすれば表示されます。
これで履歴も見ることが出来ますね。


と、ココまで作って、あるものが足りないと気付きました。
このデータベースは買い置き忘れ防止データベースです。
買い置き忘れ対策には、残数管理が必要ですね。残数は算出されてますが、残数の少ない順に並んでないし、残数が0とか1とかだとアラート表示されるとかありません。ただただ全数が並んでるだけですね。
品目が少ないのでリスト画面で簡単に確認できますが、品目が多いと残数が少ない品目を見つけるだけでも手間です。
なんとか並び順を変えたり出来ないか探してみましたが有りません。

ソートもグループも残数は選択肢に含まれません。


残念ながら最後の望みフィルタにも選択肢として表示されませんね。なんせフィールドじゃ無いですからね。


MASS CALCULATIONとGROUPでイイトコまで行けたんですが、ここまでのようです。
MASS CALCULATIONの演算結果で文字色を変えるとか、演算結果をソートやフィルタ対象に出来る様なアップデートに期待して待ちましょう。

データベース Memento Database データ活用編

前回は各フィールドに登録されたデータ属性別に動きを見ていきましたが、あくまで閲覧動作の内容でした。
今回はデータを活用するための工夫をしましょう。折角のデータベースです。データを貯めこむのは目的ではなく、やっぱり貯めこんだデータを活用でするのが目的ですよね。

先ずはリスト画面でレコードを見てみましょう。テキスト属性のフィールドをレコードの名前にしてるので表示されてますね。でも、リスト表示とはいえ一覧で確認出来る情報が乏しすぎますね。

ライブラリの設定で変えてみます。


お試しテキストのフィールドにnameと表示されてますね。コレが名前として扱うための設定で、名前として設定すればリスト表示でレコードの左上に大きな文字で表示されます。
名前以外にも説明や状態として扱わせることも選択できます。
説明はレコードの左下に横並びで、状態はレコードの右側に縦並びで表示されます。
他にも画像フィールドはサムネイルとして扱うことが出来ます。



ま、試していきましょう。

お試し整数を説明、お試し実数を状態に設定してみます。


ライブラリの設定画面でも各フィールドの右側に設定した扱いが表示されてますね。
リスト表示で確認すると、お試し整数が左下(名前の下)、お試し実数が右側に表示されているのが分かります。
コレを活用することでリスト画面でも確認出来る情報量を増やせるので、情報確認の利便性が上がりますね。


では、もう少し実用的な設定にしていきますか。
整数と実数を変動的な値として扱います。日時をデータ登録時のキーと考えましょう。
要するに、リスト画面で日時を見えるようにして、変動要素の数値フィールドを状態として設定するだけです。

名前の下に日時が表示され、数値が右側に並びましたね。
なんとなく実用的な感じがしてきましたか?


では調子に乗ってやりすぎてみましょう。
下の画面のように更に設定を追加しました。


無駄に情報が多すぎて見辛くなりましたね。
画像のサムネイル表示やチェックボックスの操作をリスト画面で可能にする設定は有効かと思います。


そう言えば、画面の一番下に何やら1行表示されていますね。ステータスバーの上ですね。
コレもライブラリの設定です。ライブラリ設定画面の下の方にMASS CALCULATIONSって有りますね。
ココを使うことで全レコードの集計が出来ます。リスト画面でフィルタやグループを指定することで、全レコードだけではなく抽出されたレコードや、グループ単位での集計も出来ます。


集計方法は4種類で、合計、最大、最小、平均です。ま、十分でしょう。
ただし、選択できるフィールドは1つなので、一つの式で複数のフィールドの合計値を算出するとか出来ません。


通貨の合計値を左側に、整数フィールドの最大値を右側に表示されるような設定をしてみました。
演算式は複数設定可能だし、結果の表示位置は左右と行位置を指定できます。


では、通貨の情報を含むデータを追加登録してみましょう。画面下の値も自動的に計算されましたね。


レコードが大量に登録されているとリスト画面で目的のレコードを見つけることが難しくなりますね。
画面の右から左へスワイプしてみましょう。

リスト画面での表示方法の設定が表示されますね。
検索、並び順、グルーピング、フィルタリングが扱えますね。


フィルタリングでは各フィールドの条件を設定して登録しておけるので、簡単に目的のフィルタリング表示をする事が出来るようになっています。


これくらいの機能が実装されていれば単独データベースとしての使い勝手は結構良い方だと思います。
欲しいのはリレーショナル・データベースではありますが、ケータイに本格的なデータベースを欲しがる人が殆どいないでしょうね。

次回は、もう少し実用的に使ってみるとこんな感じってのを見ていくことにしましょう。

データベース Memento Database データ利用編

データベースのデータ利用といえば、当然ながら登録されたデータで統計や傾向分析などするものですが、ココではフィールドの属性別にどんな動作になるのかを確認しておきます。

テキストや数値のフィールドはデータの値を活用するものなので、動作については触れないようにするつもりでしたが、?な部分があります。レコードの内容がコピーできませんね。レコード丸ごとコピーすることは可能ですが、各フィールドの値を文字としてコピーすることは出来ません。
これは案外不便ですね。

では他の属性だとどのような動作になるのか見ておきましょう。

先ずは連絡先です。連絡先フィールドをタップすると、連絡先を閲覧するためのアプリ選択になります。関連付いているアプリが1つなら該当の連絡先情報が表示されます。ま、予想通りの動作ですね。


画像フィールドも同様ですね。画像閲覧可能なアプリの選択画面になります。アプリを選択すれば、選択したアプリの閲覧画面で画像が表示されます。


次は音声ファイルフィールドです。ここも動作としてはほぼ同じですね。アプリでのファイル再生です。あくまでMemento Databaseはデータベースのアプリとしての立ち位置で、ファイルやリンクに関しては関連付けされたアプリで処理してねってスタンスなんですね。
って思ってたんですが、音声ファイルに関しては関連付けられたアプリではなく、標準アプリ限定ですね。私の端末ではPowerAmpが音声ファイルに関連付けされてますが、アプリの選択画面は表示されず、標準アプリでしか再生されません。


Hyperlinkはブラウザの選択画面になります。ドルフィンブラウザをPCサイト用、Chromeをスマートフォンサイト用として使い分けているのでアプリ選択が出来るのは助かりますね。音声ファイルも是非対応して欲しい。


位置情報も音声ファイル同様にGoogleMap限定ですね。Yahoo地図も入れてますが、選択画面は出てきません。
ま、Yahoo地図は日本以外ではマイナーだと思うので仕方ないですが、PowerAmpの様なメジャーアプリへの対応はお願いしたいトコです。


他データベースのレコードへのリンクは、リンク先のレコードが表示されます。
ホントはココで抽出検索とか出来ると嬉しいんですけどね。


ファイルへのリンクフィールドはアプリ選択画面が表示されるのですが、そもそもepubのファイルなのに何故こんなにアプリが表示されているのか不明ですね。Moon Reader+一択だと思ってたんですが。
このフィールドはリンクしているファイルの種類で呼び出せるアプリは変わりそうですが、動作としては他のアプリで処理してねスタンスは同じですね。


パスワードのフィールドはマスクが外れて値を見ることが出来ます。無防備ですね。ま、データベースをパスワードで暗号化することも出来るので、重要な情報を登録するようなデータベースを扱う場合はセキュリティも考慮しましょう。


電話番号では、電話をするか、SMSを送信するかを選択できますね。


電話もSMSも関連付けされたアプリの選択画面が表示されます。


メールアドレスも同様です。意外なアプリがメールアドレスに関連付いてますね。


属性別に動作を見ましたが、殆どは関連付けされたアプリで処理させる方式ですね。
下手にMemento Databaseに中途半端な機能を実装するよりも、専門家にお任せしますのスタンスは潔いし使いやすいですね。