盆栽の管理向上をめざして 7:盆栽管理システムの骨子を設計する
結果に対する感想:1980年代、モニタの画面からワークシートが飛び出している様子は紙の出力になっていた!
はじめに
前回記事にて画像投稿用のLINE Botを作成し、手間を掛けずに、日々の画像管理ができるようになりました。
今回はますます発展する盆栽管理システムの骨子を作ってみようと思います。
現在のところ、アイテムと画像管理を作成しました。
簡単に図式化すると以下のようになります。
「アイテム」、「画像管理」のところが一かたまりのデータとなります。
現在2つのデータのかたまりを管理しており、それらはkeyで関連付けられています。
今回考えるのはアクティビティです
「アクティビティ」はアイテムの増減や手入れを管理するデータです。
例えば、こんな感じ。
予定については未来の日付を入れるだけで管理できそうです。
「アクティビティ」の項目には、「アクティビティマスタ」のidを記入することにします。
「アクティビティ」と「アクティビティマスタ」との関連はidによって関連付けられます。
ここまでの各データの関連性はこんな感じで考えています。
私は学校でデータベースについて学んではいません。今から30年ほど前、実務でMS-ACCESS2000を使った後、社内の顧客管理DBをいくつか組んだぐらいです。
当時は、プログラマーとしてVBAやCを駆使して機能追加を行っておりましたが、時代とともに、SQLの思想を理解し始め、あまり無理をしないDB構築をするようになりました。
とはいえ、SQL言語はいまだに把握できておりませんし、どこかでは学びたいと思っています。
そんな私が設計するデータベースはいびつなものになると思われますが、必要な機能を少しずつ実装していきたいと思っています。
そもそもGooleスプレッドシートでデータベースのようなものを作ろうと思ったとき、どうすればよいのか分かりません。
今気になっていることは、idでの管理です。セルにidの番号を入力しておくと、表示はマスタの文字列で表示できるものなのか?
ちょっと調べてみます。
少しだけ調べたところによると、idでの管理に関する例がほとんど載っておらず、プルダウン機能を利用しようと思うと、idによる管理ではなく、直接文字列で管理した方が良いようでした。
おおよその全体像はこんな感じでしょうか。
ここまで整理すると、「アイテム」と「詳細」が1対1の関係であることがわかります。
リレーショナルデータベースでは1対1の関係を構築することもできますが、Googleスプレッドシートだと管理が難しくなる可能性があるため、一本化することにします。
こんなことを考えながら少しずつデータベースの形を作っていきます。
ここまでくれば、実際の形が見たくなってきます。
さっそく作っていきます
「アイテム」シートに置場、樹種、樹形、鉢の列を作ります。
この列には、それぞれのマスタからプルダウンで候補を選択して記入することにいたします。
セルを選択し「挿入」-「プルダウン」を選択します。
条件を「プルダウン(範囲内)」に変え、「='置場マスタ'!$A$2:$A$100」とします。
後は「完了」を押すだけで完成します。
条件の範囲は少し多めに設定できますので、99個まで登録できるようにしておきました。
最初は、マスタに都度都度追加する必要がありますが、一度入力すると、後からの管理は簡単になります。
そして本題のアクティビティに入っていきます
実際に盆栽鉢に起こるイベントを列挙してみました。
黒松.剪定
紅梅.開花
といった感じです。
でも実際には、黒松は自らが剪定するわけでもないし、オーナーのアクティビティなわけで、オブジェクト指向という訳でもなさそうです。
ここに手入れを書き入れていくことにします。
過去の手入れも写真を見ながら記入できると思います。
写真の情報量の多さを改めて認識しております。
実際に少し記入しました
確かに写真を見ながらの記入はとても便利です。
「対象key」が写り込んでいるものはすぐに記入できますが、そうでないものは時間が掛かると思います。
今回のプロジェクトのキモはkey管理することに尽きそうです。
さいごに
今回はここまでにいたします。
なんとかアクティビティを管理できるところまでたどりつけけました。
対象keyに若干の不安を抱えています。
例えば、水やりのときはほとんど全部の鉢に対して行っています。その時「対象key」をひとつずつ記入するのでしょうか?
リレーショナル・データベース的には、ありだと思います。
でも、これでいいのかな?と思います。
もう少し工夫できないか?そんなことを考えています。
そもそも、アクティビティ管理はGoogleカレンダーを使うべきではないか?
そんなこともぼんやり考えています。
次回はアウトプットについて考えます。
最後までお読みいただき誠にありがとうございました。