
最近データベースの勉強を始めた初学者です。
添付の画像のようなテーブルを作成しました。
教えていただきたいことは、ある社員が部署異動となる場合は、社員マスタで部署IDを変更させて
しまうと、過去のものも変更されてしまいますよね?
そういった場合はどのようにすれば、いいのでしょうか?
最終的に部署ごとの購入金額を算出したいです。
購入テーブルに列を追加して、部署IDをつければ大丈夫だと思いますが、基本的に部署異動は
少ないので、無駄なデータが毎回蓄積されることになりますよね?
うまく説明できずすみませんが、どなたかお力をお貸し下さい。

No.3ベストアンサー
- 回答日時:
購入テーブルでのもたせ方については
社員IDと部署ID両方持たせるのが普通です。
場合によっては期間を設定して社員IDと部署IDを紐付ける方法も
ないとはいえないですし、社員の部門履歴という意味では必要な
機能ですが、購買データのようなものに適用するのは非効率です
No.2
- 回答日時:
通常は、社員データと部署データのテーブルは、普通に別々に持って、所属開始日、終了日を持つテーブルを移動する毎に追加していき、現在の所属は、日付で絞って、社員データと部署を表示させたら出来ますよ。
どんどん追加しても、日付で絞れば、現在の情報を引き出せるようにしましょう。
No.1
- 回答日時:
データーベースと言うのは、単にデーターを記録するだけ、
その部分を言います。
例えば、年月日時分秒と発生事象を記録する、それだけです。
利用目的に応じて記録する、というものではなく、
あらゆる目的に対応できるように、得られる全てを記録する、
これが、データーベースです。
貴方が画像で示した内容は、
データーベースから、目的に応じて統計処理したもの、
という扱いです。
データーベースの作成では、利用目的は考えないことです。
そして、利用目的に応じた統計方法、を学ぶべきです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
テーブルで一番古いレコードだ...
-
ORA-01401が表示され、データが...
-
このISAMでは、リンクテーブル・・
-
住所のDBテーブル、マスターの...
-
同一テーブルのデータを参照し...
-
削除したテーブルを元に戻すこ...
-
結合テーブルでINSERTする方法...
-
Oracleで上書きImportはできま...
-
Accessでデータシートに同じデ...
-
Pervasive.SQLについて
-
CONNECT BYに関して
-
ACCESS2000でのリンクテーブル...
-
Accessのテーブルデータを一気...
-
Access昇順レコードを、5分割...
-
「テーブルに座って……」という...
-
AccessのSQL 部分一致したデー...
-
降順で並び替えて昇順で受け取...
-
SQLで複数列のデータを複数行に...
-
SQLでUPSERTを一度に複数行やる...
-
外部キーだけのテーブル(主キ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessでデータシートに同じデ...
-
Oracleで上書きImportはできま...
-
ビューのソートについて
-
このISAMでは、リンクテーブル・・
-
テーブルで一番古いレコードだ...
-
アクセス レコードセットを更...
-
Accessのテーブルデータを一気...
-
SQLです教えてくださいお願いし...
-
accessでレコード更新直後の反...
-
結合テーブルでINSERTする方法...
-
ODBC接続で新しいレコードを追...
-
マテリアライズドビューとスナ...
-
ORA-01401が表示され、データが...
-
Accessでの稼働日数計算の方法
-
処理の途中で停止させ、再開さ...
-
「クリップボードにコピーされ...
-
SQL文の結合(一対多)がわから...
-
構文エラー : 演算子がありませ...
-
Accessのインポートについて(上...
-
テーブル作成について
おすすめ情報