重要なお知らせ

「教えて! goo」は2025年9月17日(水)をもちまして、サービスを終了いたします。詳細はこちら>

【GOLF me!】初月無料お試し

最近データベースの勉強を始めた初学者です。
添付の画像のようなテーブルを作成しました。

教えていただきたいことは、ある社員が部署異動となる場合は、社員マスタで部署IDを変更させて
しまうと、過去のものも変更されてしまいますよね?
そういった場合はどのようにすれば、いいのでしょうか?

最終的に部署ごとの購入金額を算出したいです。

購入テーブルに列を追加して、部署IDをつければ大丈夫だと思いますが、基本的に部署異動は
少ないので、無駄なデータが毎回蓄積されることになりますよね?

うまく説明できずすみませんが、どなたかお力をお貸し下さい。

「データベースのテーブル設計に関して」の質問画像

A 回答 (3件)

購入テーブルでのもたせ方については


社員IDと部署ID両方持たせるのが普通です。

場合によっては期間を設定して社員IDと部署IDを紐付ける方法も
ないとはいえないですし、社員の部門履歴という意味では必要な
機能ですが、購買データのようなものに適用するのは非効率です
    • good
    • 0

通常は、社員データと部署データのテーブルは、普通に別々に持って、所属開始日、終了日を持つテーブルを移動する毎に追加していき、現在の所属は、日付で絞って、社員データと部署を表示させたら出来ますよ。


どんどん追加しても、日付で絞れば、現在の情報を引き出せるようにしましょう。
    • good
    • 0

データーベースと言うのは、単にデーターを記録するだけ、


その部分を言います。
例えば、年月日時分秒と発生事象を記録する、それだけです。
利用目的に応じて記録する、というものではなく、
あらゆる目的に対応できるように、得られる全てを記録する、
これが、データーベースです。

貴方が画像で示した内容は、
データーベースから、目的に応じて統計処理したもの、
という扱いです。

データーベースの作成では、利用目的は考えないことです。
そして、利用目的に応じた統計方法、を学ぶべきです。
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す