dポイントプレゼントキャンペーン実施中!

お願いします。

Accessで社員DBを作ろうと検討しておりますが、基本的な考え方についてアドバイスください。
1)社員の氏名、所属、住所などの基本情報を入れるマスタテーブルを作る(社員番号を主キー)。
2)付加的な情報を入れるテーブルを作る。たとえば、
(1)家族情報(2)資格情報(3)人事考課情報(4)勤怠情報など・・。
3)上記、基本情報を入れるテーブルと付加的情報テーブルを社員番号をキーとしたリレーションで結ぶ。
4)各社員について、付加的情報テーブルに情報を入力していき、必要に応じてクエリで取り出す。

情報の入力の仕方として考えているのが、
1)基本情報入力フォーム上に、付加的情報の入力用のフォームを開くボタンを配置する。
2)基本情報入力フォームを開いた後、必要に応じ、該当するボタンを押して入力フォームを開き、付加的情報を入力していく。

具体的に言えば・・
1)Aという社員の基本情報を開いて、付加的情報たとえば家族情報を「家族テーブル」に入力する。
2)その後、Bという社員の同じ家族情報を入力するためにBの基本情報を開いて、Bの家族情報を入力する。
3)家族テーブルには、Aの家族とBの家族のレコードが混在して蓄積されるが、区別するために、各レコードに「社員番号+行番号(連番)」を自動的につけていく。
4)基本情報フォームで社員を選択し、家族情報フォームを開くと、社員番号をキーに抽出されたレコードが表示される。

長々と書きましたが、この社員台帳データベース作成上の基本的な設計方法に問題はないでしょうか?
もしおかしければ、どこをどうすれば使えるDBになるのでしょうか?
アドバイスをお願いします。

A 回答 (3件)

>勤怠情報について日付を組合せる場合ですが、同じ日付けで複数の入力(例:遅刻と早退)がある場合を考えて、社員番号+日付+行番号・・となりますでしょうか?



「社員番号+日付+行番号」が主キーでOKです。

{データの例}
社員番号, 日付, 行番号
0001, 2004/08/02, 1
0001, 2004/08/02, 2
0001, 2004/08/03, 1
0001, 2004/08/04, 1
0002, 2004/08/02, 1
0002, 2004/08/03, 1
0002, 2004/08/03, 2
0002, 2004/08/04, 1
0002, 2004/08/04, 2





「社員番号+日付+行番号」と「社員番号+行番号」のどちらを主キーにした方が良いかは、
他の項目を全て検討しなければ厳密にはわかりません。
    • good
    • 0
この回答へのお礼

ありがとうございました。
いろいろテストしながら作りこんでみます。
また質問がありましたら宜しくおねがいします。

お礼日時:2004/08/02 18:46

(1)家族情報(2)資格情報(3)人事考課情報(4)勤怠情報の主キーは「社員番号+行番号(連番)」で基本的には問題ないと思います。



資格情報は、資格の種類が固定的であれば、資格マスタテーブル(主キー:資格コード)を作成して、資格情報テーブルの主キーを「社員番号+資格コード」にする方法もあります。

勤怠情報は、内容によっては、主キーを「社員番号+年月日」でも良いかもしれません。
    • good
    • 0
この回答へのお礼

ありがとうございます。
社員番号と資格番号の組合せですね・・なるほど。
勤怠情報について日付を組合せる場合ですが、同じ日付けで複数の入力(例:遅刻と早退)がある場合を考えて、社員番号+日付+行番号・・となりますでしょうか?

お礼日時:2004/08/02 15:14

基本的なDBで問題はないと思います。



(1)家族テーブルには、Aの家族とBの家族のレコードが混在...と言うことはその通りですが、この管理は親テーブルのリンクを社員番号で行う場合は
行番号(連番)は必要ないと思います。
ただこの情報を入力日(日付 自動)をもっていれば
家族情報がいつ更新されたかわかります。

(2)あとは問題ないと思います。途中までテスト的にテーブル、クエリーを作成しながら修正される方が
わかりやすいです。
    • good
    • 0
この回答へのお礼

早速の返信ありがとうございます。
なるほど日付フィールドで更新日がわかりますね。

お礼日時:2004/08/02 15:11

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