システム開発 図書館の貸出履歴システムを改善する。

システム開発 では、システムを運用していくうちに、様々な改善点が出てきます。

例えば、前回までにテーブル設計を考えた、図書館の貸出履歴システムでは、「同じ利用者が一度に何冊も本を借りる場合」が、容易に予想できます。

(1)すると、貸出日と利用者CDが、重複する可能性のあることがわかります。

system-51.gif

重複するデータは、別テーブルに分けることを検討するのが基本だと、前に説明しましたね。


(2)本来なら、以下の様な形式のほうが、無駄がありません。

system-52.gif


(3)そのためには、貸出履歴テーブルを、さらに正規化して、2つのテーブルに分ける必要があります。

system-53.gif

・貸出No、貸出日、利用者CDで1つのテーブルにする
・書籍CDは複数あるので、明細として別のテーブルに分ける

しかしこのままでは、貸出履歴テーブルと明細テーブルに関連性がありません。また明細テーブルにも、主キーとなるフィールドが必要です。

そこで、最終的には以下のようなテーブルに分けます。
・貸出No(主キー)、貸出日、利用者CD(外部キー)
・明細CD(主キー)、貸出No(外部キー)、書籍CD(外部キー)

このような考え方は、後に学ぶ「売上伝票」を参考にすると、よく理解できます。

実は、まだまだ他にも改善点があります。

例えば、同じタイトルの本が複数冊ある場合も考えられます。これはレンタルビデオでも同じです。人気のある映画なら、同じタイトルのビデオが、たくさん入荷することはよくありますよね。

でも、今回はデータベースの基礎編なので、これくらいにしておきます。

もっと本格的なテーブル設計については、次の「売上伝票」で学ぶことにします。

スポンサードリンク

スポンサードリンク






システム開発実践講座 TOPへ