テーブルの設計 その4"トランザクション"
■ くだり(イラネダロ…)
前回は説明が下手くそで、ホントスマンカッタッ!
動画で説明したほうが分かりやすいと思ったりしましたが、動画編集って大変なんですよね、トリミングしたり、タイミング合わせたり、エフェクト入れたり、文字情報いれたり、流石に動画編集する時間の確保が難しくて💦
(なんのために専用のようつべの垢作ったんだ説)
ま、今回も同じ感じになるかもしれません。(いやなる、確信)
■ データの更新方法とデータの格納方法
データを格納するテーブルを考えた後、データの流れや処理方法を考えて、もう一度、テーブルの追加・削除・変更を考えていきます。
ワイのような、実務の合間にツールを作るとなると、開発コスト(時間です)の重要性って高いです。
要するに、出来る限りシンプルに作る。
下記の項目は、ワイが長年の経験値で、考慮するポイントになる。
Accessでツールを作る時に考えるポイントです。
> 何人で使用するのか?
> 登録・更新・削除の頻度は?
> 他のテーブルに与える影響は?
> 開発難易度(開発期間)はOK?
> データの保存期間は?
> トラブル時のリカバリは?
これらの注意事項を、深く考慮して決定します。
一つ一つ、考えていきます。
| 何人で使用するのか?
基本的に1名。
| 登録・更新・削除の頻度は?
登録は、朝と昼と夕の3回。
ごく稀に、1~2件のマニュアル登録。
口数が増えると、レコードが追加。
更新は、運賃を計算させる時の1回み。
ただし、全レコード。多くて400レコード数くらい。
削除は、R/3に送料をアップデートした時のみ。
個別のレコードの削除は、基本無し。
シンプルな設計で済みそうだ。
| 他のテーブルに与える影響は?
ここで言う「他のテーブル」の意味は、「他のツールのテーブル」という意味です。
このツールで、他のテーブルに影響は無いが、たのツールよりデータをもらう予定なので、読み取り専用ではあるが、影響を受ける可能性がある。
ただ、どちらにせよ、基幹システムが大きく変化しない限り変更する予定が無いので、ほぼ影響なしと判断する。
| 開発難易度(開発期間)は?
開発工数にかける時間は最小限にする必要あり。
作りをシンプルにしつつ、機能は果たすように品質を維持する。
テーブルは、少なくする必要あり。
| データの保存期間は?
データ自体は、R/3にアップデートされるので、基本的に残す必要性は無い。
しかし、マスターの設定ミスで、運賃を間違い登録される可能性があるので、処理した結果のデータは、保存した方が良い。
| トラブル時のリカバリは?
R/3からダウンロードしたテキストデータさえあれば、なんとかなる。
データ更新で大きなミスをしても、データをインポートしてリセットできるように作り込むこと。
■ トランザクション処理方法
特に重要なポイントは、利用する人数と、更新頻度。
この2つのポイントで詳細設計の方針が決まります。
ここでは、テーブルの設計段階なので、テーブルの設計について書きます。
小さくて ホントスマンカッタッ!
今回は、本当に小さなアプリなことが分かります。
処理用のテーブルはほぼ不要で、Accessファイルを分割する必要もないと判定できます。
■ Access内のデータの流れを考える
基本方針が決まったら、もう一度データの流れを見直しします。
えっ!ポイントの表と違うじゃんって思う人もいたかもしれない。
1人しか使わないとしても、データとアプリは分けた方が良いです。
Accessのファイルを複数に分けても、開発コストには影響は無いです。
所詮、Accessなわけで、破損するリスクは付きまといます。
その破損した時のリスクを最小限に抑える為、Accessでアプリを作るなら、データとアプリを分離した方が良いです。
■ 処理用のテーブルは?
今回のアプリの利用者数は、基本的に1名なので、テーブルを直接参照して処理をするように作り込みます。
もう一つの主な理由、開発コストを抑える為。
テーブルを増やせば、それだけ処理が増えるし、同じような処理を2回、3回と作る必要があるからです。
個人的な考えですが、利用者が1名の場合、処理用テーブルは作る必要は無いと思います。
ただ、2名以上となると、更新や削除する時は、注意が必要になります。
Accessはページロックが基本なので、データロックする可能性があり、処理用テーブルは必須になってきます。
さらに、データの整合性を保つ工夫も必要になって、VBAのプログラミングが大変な量になったり、色んなギミックを仕込む必要性も出てきます。
トランザクションを作るのも良いですが、作る前に一呼吸。
アプリの特性を理解し、開発コストも考えて、テーブルの設計をすることが一番です。
■ まとめ
処理用テーブルはここまで。
(テーブルの設計は、あと2回)
次回は、マスターテーブルについて、深堀します。
このアプリの保存データについて、何かアプトプットを出すのかと言われたら、「特にない」ってなるので、この辺の説明は、どうしても薄くなってしまう問題があります。
正規化の所も薄い内容なのは、データを利用しないアプリだからでしょうね。
仕方がないです。
役に立っているのかは、微妙ですが、一人でもアプリを作る人に参考になれればと思って、記事を継続しています。
今回も、こんな薄い内容で ホントスマンカッタッ 。
ここまで、読んでくれて、ありがとうございました。
では、また次回。
この記事が気に入ったらサポートをしてみませんか?