見出し画像

テーブルの設計 その6”最終チェック”

■ 最終チェックするコト

マスターの設計を終えたら、下記のチェックを行います。
違和感が無ければ、設計としては完了とします。

  1.   テーブル名と項目名に違和感が無いか?

  2.   計算速度と検索速度は満足できるか?

ま、この2つです。
前回までの設計段階でほぼ完成されているからです。

本来なら、チームで設計してチェックする人がいるのが当たり前ですが、

要件定義~設計~実装~運用 まで全部一人ですからね(汗)

■ テーブル名と項目名に違和感は無いか?

これ、何気に重要です。

なぜって、後から変更するのが出来ないからです。
(いや、時間さえあればできますよ!時間が無限にあれば!)

ですから、名前と内容に違和感が無い事をもう一度考えます。

名前って重要ですよ。

  • テーブル名とデータの内容

矛盾があると思ったら思い切って書き直しします。
後からテーブル名を変更すると、痛い目をみることに。
設計段階で確定させることが開発スピードを速めるコツになります。

  • 項目名と項目の内容

テーブル名同様に進めます。違和感があれば修正します。

■ 計算速度と検索速度は満足できるか?


所詮は、Access。

所詮は、業務用PC。

その中でも耐えられるパフォーマンスを出す必要があります。

考えるのは、2つです。

1. 主キーとインデックス


ま、検索、集計する項目は、迷わずインデックスを付けましょう。

ただ、デメリットがあります。

インデックスが多いテーブルに対して、データの追加・変更・削除するとき、時間がかかる。(あまり気にしないが💦)

それより問題になるのは、テーブルのサイズ(ファイル容量)がインデックスの数だけ多くなることです。


テーブルにインデックスを設定しないと速度が向上しない。
インデックスを設定するとファイルサイズが大きくなる。

この2つの問題を解決する方法があります。

ファイル分割

例えば、「マスター系」「トランザクション系」「アプリ系」でファイル分割したり、最悪は、「テーブル、1つに、ファイル、1つ。」にします。

この方法で、ファイル馬鹿デカ問題は回避できます。

今回の事例は、そんなデータが多くなることは無いと思い分割はしていません。

仮にファイル分割する必要が出てきた場合も、さほど問題になりません。
テーブルを張り直すだけですみますから、軽微な問題です。
(※ VBAでDAOを使っていないことが前提になります)

2. バックアップという考え方


DB設計における「バックアップ」の意味は、もしもの場合のファイルを退避(コピー)して、復旧できるようにする意味ではありません。

DB設計における「バックアップ」とは、トランザクションデータにマスターデータのコピーする事を意味します。


よく、リレーションシップでマスターデータを読み込むことで、単価情報とか品名を取得できます!
って言いますよね。

ま、イイですよ、小っちゃいDBなら。それで。

ただ、この方法は、Accessでシステムを作る場合、非推奨です。

Accessでシステムを作る場合は、その時点のマスターデータをまるまるトランザクションテーブルに保存する方法を推奨します。
この手法を「バックアップ」といいます。

次のようなメリットが出ます。

・トランザクションテーブルの検索速度向上
・ソースコードが簡略化できる

特に、速度向上に大きな期待ができます。

可能であれば、マスターデータを全てトランザクションテーブルに追加してしまうことをお勧めします。

■ テーブルの設計段階は、ここでおしまい

大変長くなりましたが、テーブルの設計としては、6ステップになります。

この手法は、私が長年Accessでシステムを作る過程で、会得したもので、誰から学んだ技術ではないです。
(ま、一部、書籍から取り入れた部分もあります。)

だから、素人が作るシステムの場合に限定して下さい。

テーブルの設計に正解は正直無いと思っています。
が、間違いはあると思います。

失敗しないテーブルの設計 で悩んでいる人が多いのではと思って、
テーブルの設計に関しては、結構厚く記事にした感じです。

ワイの記事からテーブルの設計が出来るようになる人が出てくれればと思います。


余談ですが、私が最後にAccessの書籍を購入したのは、10年より前の話です。
ADOについて学び買った為に、Accessの書籍を買ったのが最後になります。
ただ、Accessの書籍で、「テーブルの設計」について、詳しく書いてある書籍は少ないと思います。

テーブルの設計が鬼門になって、Accessを諦める人も多いと思っているのもあります。 この件は日記の記事にしようかな(笑)

次も設計段階になります。
ここまで読んでいただき、ありがとうございました。

この記事が気に入ったらサポートをしてみませんか?