![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?5a7ff87)
お願いします。
Accessで社員DBを作ろうと検討しておりますが、基本的な考え方についてアドバイスください。
1)社員の氏名、所属、住所などの基本情報を入れるマスタテーブルを作る(社員番号を主キー)。
2)付加的な情報を入れるテーブルを作る。たとえば、
(1)家族情報(2)資格情報(3)人事考課情報(4)勤怠情報など・・。
3)上記、基本情報を入れるテーブルと付加的情報テーブルを社員番号をキーとしたリレーションで結ぶ。
4)各社員について、付加的情報テーブルに情報を入力していき、必要に応じてクエリで取り出す。
情報の入力の仕方として考えているのが、
1)基本情報入力フォーム上に、付加的情報の入力用のフォームを開くボタンを配置する。
2)基本情報入力フォームを開いた後、必要に応じ、該当するボタンを押して入力フォームを開き、付加的情報を入力していく。
具体的に言えば・・
1)Aという社員の基本情報を開いて、付加的情報たとえば家族情報を「家族テーブル」に入力する。
2)その後、Bという社員の同じ家族情報を入力するためにBの基本情報を開いて、Bの家族情報を入力する。
3)家族テーブルには、Aの家族とBの家族のレコードが混在して蓄積されるが、区別するために、各レコードに「社員番号+行番号(連番)」を自動的につけていく。
4)基本情報フォームで社員を選択し、家族情報フォームを開くと、社員番号をキーに抽出されたレコードが表示される。
長々と書きましたが、この社員台帳データベース作成上の基本的な設計方法に問題はないでしょうか?
もしおかしければ、どこをどうすれば使えるDBになるのでしょうか?
アドバイスをお願いします。
No.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
・
・
・
「社員番号+日付+行番号」と「社員番号+行番号」のどちらを主キーにした方が良いかは、
他の項目を全て検討しなければ厳密にはわかりません。
No.2
- 回答日時:
(1)家族情報(2)資格情報(3)人事考課情報(4)勤怠情報の主キーは「社員番号+行番号(連番)」で基本的には問題ないと思います。
資格情報は、資格の種類が固定的であれば、資格マスタテーブル(主キー:資格コード)を作成して、資格情報テーブルの主キーを「社員番号+資格コード」にする方法もあります。
勤怠情報は、内容によっては、主キーを「社員番号+年月日」でも良いかもしれません。
ありがとうございます。
社員番号と資格番号の組合せですね・・なるほど。
勤怠情報について日付を組合せる場合ですが、同じ日付けで複数の入力(例:遅刻と早退)がある場合を考えて、社員番号+日付+行番号・・となりますでしょうか?
No.1
- 回答日時:
基本的なDBで問題はないと思います。
(1)家族テーブルには、Aの家族とBの家族のレコードが混在...と言うことはその通りですが、この管理は親テーブルのリンクを社員番号で行う場合は
行番号(連番)は必要ないと思います。
ただこの情報を入力日(日付 自動)をもっていれば
家族情報がいつ更新されたかわかります。
(2)あとは問題ないと思います。途中までテスト的にテーブル、クエリーを作成しながら修正される方が
わかりやすいです。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- C言語・C++・C# c言語の問題です 2 2023/07/21 10:51
- Access(アクセス) Access 登録ボタンからサブフォームの更新 1 2022/07/22 10:23
- Access(アクセス) ACSESS初心者です マンション管理をACCESSで出来ないかとチャレンジしています。 リレーショ 3 2022/10/08 11:45
- SQL Server ACCESSで表が作りたく、そのためのSQL文や設定方法を教えてください。 1 2022/08/15 12:28
- その他(セキュリティ) これは個人情報取扱に違反していますか? 5 2022/11/15 22:02
- ネットワーク 家庭内LANの2台のPC間で「ネットワーク資格情報の入力」で引っかかってフォルダが共有できない 1 2022/12/11 23:37
- Access(アクセス) Accessテーブルの結合で別々のテーブルのフィールドを組み合わせて値を出す方法について 2 2022/07/20 19:43
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- Access(アクセス) Access IF文でテーブルに存在しない場合の処理について 2 2022/10/10 18:09
- Access(アクセス) Accessのリンクテーブルのパスを相対パスにする方法について教えて頂きたいです 1 2023/02/08 13:29
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
Accessで日付が変わると番号が...
-
access 自動採番 年が変わる...
-
Access 文字+年ごとの自動採番
-
Accessでのレコード存在チェック
-
access 自動採番 「10-AA-000...
-
条件をつけて日付の古い行を抜...
-
ACCESSでの行番号の自動採番
-
【Access】選択クエリのグルー...
-
Accessで自前の自動採番処理で...
-
【アクセスVBA】テーブルにフィ...
-
access 請求番号の自動採番
-
チケット販売等の日付を持つテ...
-
最新の日付とその金額をクエリ...
-
【SQL】existsでの商演算
-
Oracleでの文字列連結サイズの上限
-
GROUP BYを行った後に結合した...
-
SELECTで1件のみ取得するには?
-
アクセスでレポートの1印刷内...
-
select insertで複数テーブルか...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessで別テーブルの値をフォ...
-
access 自動採番 年が変わる...
-
最新の日付とその金額をクエリ...
-
Accessでのレコード存在チェック
-
【アクセスVBA】テーブルにフィ...
-
アクセスで「空き番」の確認
-
vba 直前の操作はキャンセルさ...
-
条件をつけて日付の古い行を抜...
-
質問です。 下記のテーブルとデ...
-
【Access】選択クエリのグルー...
-
[Access]異なるレコード間の文...
-
Access:抽出して、色をつけたい。
-
Access 文字+年ごとの自動採番
-
Accessで日付が変わると番号が...
-
access 自動採番 「10-AA-000...
-
Recordset.FindFirstについて
-
ACCESSでの行番号の自動採番
-
access2003で学籍番号から生徒...
-
【SQL】existsでの商演算
-
サイベースには、オラクルのROW...
おすすめ情報