スポンサードリンク

システム開発 年齢を計算して表示する方法。

システム開発 では、年齢を計算して表示することがよくあります。

そこで今回は、図書館の利用者の年齢を表示してみましょう。

利用者テーブルに、どんなフィールド(列)を追加すると、年齢を表示することができるか、考えてみてください。

一番簡単に思い付くのは、「年齢」のフィールドを追加することです。

system-35.gif

しかし年齢は、時間が経てば変化します。

リレーショナルデータベースでは、基本的に、計算して出せるデータは、テーブルに保存しません。クエリやSQLを使って、計算して表示します。

ではどんなデータがあれば、年齢が計算できるでしょうか?

そうですね。利用者の生年月日がわかれば、年齢は計算して出すことができます。したがって、利用者テーブルに追加するフィールドは、「生年月日」ということになります。

system-36.gif

あとはクエリやSQLを使って、仮想テーブルを作成し、演算フィールドで年齢を表示することができます。

system-37.gif

現在の年から誕生日の年を引けば、簡単に計算できますね。

このような計算をするフィールドを、「演算フィールド」といいます。演算フィールドを使うことで、テーブルに無いフィールドを表示することができます。

ただし、年齢を計算する時には注意が必要です。例えば、現在の日付が 2008年11月19日 だとします。

利用者CDが 9 の「和田 恵」さんは、誕生日が12月11日なので、今年はまだ誕生日を迎えていません。西暦の年だけで単純計算すると、1歳多くなってしまいます。

system-38.gif

したがって満年齢を計算する時は、もう少し複雑で、現在の日付が誕生日未満か以降かまで、考慮する必要があります。

でも大丈夫です。クエリやSQLでは、複雑な計算も行なうことができます。

以下は満年齢で計算した結果です。
system-39.gif

これで今年の誕生日がまだの人の年齢も、ちゃんと表示することができました。


以上のように、リレーショナルデータベースの設計を行なう時は、出力したいデータをそのまま保存するのではなく、元になるデータと、その処理も考えて、設計する必要があります。


【ワンポイント】
今回のような計算は、「データベース側」でも「プログラム側」でもできます。

基本的に、データベース側でできることはデータベースで行い、プログラム側では、処理結果を受け取って利用します。

そのほうがプログラムが短くて済むので、ソースコードがシンプルになります。もちろんシステム開発の効率もアップします。

スポンサードリンク






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