2013年10月25日金曜日

データベース Memento Database データベース作成編

本格的なデータベースアプリって無いですよね?
データを登録したり閲覧したりするアプリは沢山あるんですが、抽出したり別のテーブルのデータと連結して活用したり出来るアプリって殆どありません。
データベースで検索してもデータベースのソフトではなく、データベース化されたアプリばかりです。データベース化されたアプリっていうのは、データを登録して利用するソフトじゃなくて、例えばIMDBの様な映画のデータベースの情報を閲覧するようなアプリの事です。

今使ってるのもデータを登録、閲覧するのが主になっているものでMemento Databaseですが、アップデートの度に機能アップして今では別のデータベースへのリンクまで扱えるようになりました。


残念ながら1つのライブラリと呼ばれる単位が、1つの独立したデータベースです。
それぞれのライブラリを連結したりとかの検索は出来ません。
ま、今はまだ簡易データベースってトコですね。

アプリタイトルの下にある「購入履歴」はグループと呼ばれるもので、カテゴリ分けなどに使えます。
その下に並んでるタイルがデータベースになります。Memento Databaseではライブラリと呼ばれてます。

右上の+ボタンをタップすると、ライブラリの追加とグループの追加、それに共有されているライブラリの検索ができます。

既に他のデータベースがあるので、邪魔にならないように新しいグループを作っちゃいます。
特にグループ分けするつもりがなければ不要ですよ。


空のグループを作ると、画面の真ん中にライブラリの追加とグループの削除ボタンが表示されます。






ボタンのAdd Libraryか、+メニューのAdd Libraryを選択するとテンプレートの一覧が表示されます。
一番上は空っぽの状態から初められます。


早速空っぽの状態からデータベースを作っていきましょう。
データベースのタイトルは「お試しデータベース」にします。
何のデータベースか分かりやすくするためにアイコンも変えます。
アイコンはプリセットから選択も出来ますが、下にあるChose your own iconをタップすると画像ファイルを選択できます。


特に意味は無いですが、私はオードリーのファンなので。


次にデータベースのフィールドを追加していきましょう。
LIBRARY ENTRY FIELDSの右にあるADDをタップするとフィールドが追加できます。
一番上のField nameは固定ですが、ADVANCED PARAMETERS以下はField typeで変わります。


選択できるField typeは沢山あります。以前は貧弱だったんですが、最近まで頻繁にアップデートされていて、Field typeがかなり増えました。必要十分だと思います。殆どはタイプの名前で分かりますね。


全てのField typeでは表示されませんが、Field functionが表示されるタイプが有ります。
Regular fieldは普通のフィールドです。リスト表示の際に表示される項目を選択します。
Entry nameはレコードの名前として左側に大きく表示されます。
Entry descriptionは説明として名前の下に表示されます。
Entry statusは状態として右側に表示されます。
用途として分類はされてますが、表示位置や文字サイズの違いくらいに考えて良さそうです。


では一つフィールドを追加しましょう。テキスト属性のフィールドにします。
また、リスト表示の際に名前として表示されるようにします。
設定が終わったらOKを押しましょう。



はい、追加されましたね。


続いてField typeで特徴的なのを細かく見ていきながら、全てのフィールド属性をどんどんと追加していきましょう。

Integerは整数でReal numberは実数ですね。どちらも数字属性のフィールドです。


Booleanは真偽ですね。Memento Databaseではチェックボックス型になっています。
このタイプでは、Where you can editが特徴です。
これは、どの表示方式の際にレコードの値を変更出来るか設定します。
リスト表示で変更可能にすれば、ToDo等のチェックリストに使いやすいですね。
どちらも選択しないとレコードの編集画面のみで変更可能になります。


Calculationは計算ですね。
Add functionの右にある?をタップすれば使い方が表示されます。
四則演算や余りの演算が出来ますね。比較演算や条件演算は出来なさそうで残念です。


では「お試し整数」フィールドと「お試し実数」フィールドを加算するようにしましょう。


演算結果の出力形式も設定できます。実数、整数以外にも日付や日時が選択できます。
日付や日時形式に出来るのは、日付や日時の演算も出来るからです。
日数や時間の演算が出来るので、勤務時間管理データベースにも使えますね。
当然ですが、先に演算に使用するフィールドを登録しておかないと選択できません。


次のフィールドはDateです。日付ですね。
日付フィールドでは初期値で現在を選べます。


時刻や日時のフィールドも有ります。日付フィールド同様に初期値で現在が選択できます。


Contactは連絡先ですね。端末の電話帳に登録されている連絡先にリンクできるフィールドです。
取引先との受発注を管理するデータベース等で、連絡先と関連付けできるので便利です。


Imageフィールドでは画像ファイルの貼り付けが出来ます。
でも実際には画像を貼り付けるのでは無く、画像ファイルへのリンクになります。
フィールドに画像が表示されるので、データベースに画像データが登録されるのかと勘違いしてましたが、元の画像ファイルを端末から削除したり移動すると、画像が見つかりませんと表示されるようになるので注意です。
このフィールドの特徴は、リスト表示の際にサムネイルとして使うかを選択できる所です。


String valueは選択方式の文字列フィールドです。
ただし、選択肢はライブラリの編集でしか変更出来ないので、選択肢を頻繁に追加するような用途には向きません。選択肢を追加するような使い方なら、テキストフィールドでAuto Completeを設定した方が良いでしょう。


選択肢の順序変更やアイコン設定もできます。
また、リスト画面やカード画面で値を変更出来るように設定すれば、タスクリスト等の用途で、未着手、実行中、完了などのステータス変更が簡単に出来るようになりますね。


Multiselect valuesフィールドを使えば、複数の文字列を選択するフィールドも作れます。
タグの様な使い方が出来ますね。


Audioフィールドもあって、音声ファイルへのリンクが可能です。
う~ん、使い道が今ひとつ思いつきませんが、会議履歴で議事録音とかにリンクするんですかね?
このフィールドはAndroid標準の音楽再生アプリからファイルを選択するので、他の音楽再生アプリを使っている方で標準アプリを無効にしているとエントリ登録時にMemento Databaseが落ちるので注意です。


お買い物履歴に欠かせないCurrencyも有ります。数値属性のフィールドでも事足りるんですが、外貨も選択できるので必要な人も居るんでしょうね。
でも、このフィールドには不満が沢山有りますね。
先ず、通貨の選択はフィールドの登録時に固定されます。エントリ登録時に通貨が選択できないので、購入履歴で複数の外貨を利用する可能性があるデータベースでは、外貨の種類分のフィールドを作っておく必要が有ります。
また、通貨のレートが自動計算されたりはしません。あくまで、選択した外貨に合わせた数値を入力出来るだけです。
更に、実数部分の変更が出来ません。日本円の最低額は円です。昔は銭とか有ったのでしょうが、今では日本円は整数で表せます。でも、必ず実数部分が2桁表示されちゃうんです。


次のレートはRatingです。評価ですね。星5つで表現されます。DVDのコレクションや、購入アプリの評価データベースなんかに使うのに良いのでは。


HyperlinkはWebのURLを登録するフィールドです。
Google Maps coordinateは位置情報を登録できます。レコードの登録時にはGoogleMapの画面で、地図上の位置を選択すると住所が登録されます。


Barcodeのフィールドもあって、カメラでバーコードを読み込んで、他のフィールドに情報を自動登録できるスグレモノのはずなのですが、データソースがGoogle Product Searchしか選択出来ないのと、何故かGoogle Product Searchに接続出来なくて便利に使えません。バーコードの数値が登録出来るだけになっちゃってます。
このフィールドがアップデートで追加された直後は使えてたんですけどねぇ。


Link to entryは昔から欲しかったリレーション風味のフィールドです。
Memento Databaseで作った他のデータベースのレコードへのリンクを登録できます。
レコードへのリンクなので、リレーション的な使い方とは異なりますが、こういった使い方の出来るデータベースアプリすら他に無いので、Memento Databaseは他とは一線を画したアプリと言えるのでは無いでしょうか。
購入履歴データベースなんかで、購入品を登録するデータベースと、購入元を登録するデータベースを別のテーブルとして作ることで、無駄に同一の購入元を複数レコードに登録しなくて済みますね。データベースとしては一般的な使い方なので、この属性が追加されるまでは不便で仕方なかったんです。


Link to fileはファイルへのリンクですね。画像リンクと同様にリンクなので無駄に容量を食いませんが、元ファイルの削除や移動には注意しましょう。この属性はiPhoneでは出来ないんですよね。あのiOSとか言うナゾだらけのOSはファイル管理をアプリに任せているので、他のアプリから参照できません。他のアプリで別アプリで管理してるファイルを使おうとすると、自アプリにファイルを複製して使うって言う馬鹿げた方法になりますね。Androidに変えたのはこの辺りが不満だったのも一因ですね。


Passwordのフィールドですが、カード表示の際に値が*になるだけです。
URLに自動的にパスワードを入力してくれるとかの機能は無さそうです。


Phone、Emailもあります。電話かけたり、メール送ったり(メールクライアントの宛先に渡されます)出来ます。


Integer valuesって属性が増えてますね。整数値を範囲内で選択させるフィールドです。
例えば、作業の進捗をパーセンテージで表現する場合に、0~100の範囲で選択させるなどに使えますね。


さて、これからも進化する可能性を秘めているMemento Databaseですが、現在選択可能なフィールド属性の全てを使ったデータベースを作ってみました。実用性はゼロなデータベースですが、レコード登録時の動作を確認するには使ってみるしか無いので作ってみました。



長くなったのでデータの登録は次回にしますね。



















































0 件のコメント:

コメントを投稿