- ベストアンサー
accessテーブル設計についての質問
- Excelで管理していた社員台帳をaccessで管理するためのテーブル設計について教えてください。
- 特に住所歴や昇給歴のような、個人ごとに複数のデータがあったりなかったりする項目のテーブル設計について分からないです。
- 社員CDと氏名のテーブルは作成できるのですが、昇給額のような項目のテーブルはどのように作り、他のテーブルとどのように関連付けるべきでしょうか?
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
>accessのテーブル設計について教えてください。 失礼ですが、御社ではAccess は初めてですか 最初にテーブル設計始められるのは大正解です。 一般にExcelファイルをインポートしてテーブルを作成出来るので、テーブル設計には、あまり注力されません これではExcelのコピー過ぎず、拡張性に乏しい仕組みになってしまいます。 リレーショナル型データベースと呼ばれるAccessの核になるのがテーブルです。 ------------------------------------------------------------------------------ テーブルの情報の用途によりテーブル名の頭に M_(マスター) 固定的な情報 S_(参照) 参照はマスターと同じ性質で、他のテーブルの登録ミス回避と入力効率を上げる T_(トランザクション) 日々発生する情報 >Excelで管理していた社員台帳が退職者含めると500人ほどに増えてきたので、社員の管理ソフトを作るように言われ必死でaccessを勉強し頑張っているところです。 テーブルのフィールド名はExcelの見出し行とすると500名の情報のインポートがうまく行くかも ★インポートの流れ 外部データ→新しいデータソース→ファイルから→Excel→参照→社員台帳→開く →レコードのコピーを次のテーブルに追加→M_社員台帳→OK→次へ→次へ→完了→はい→閉じる >もともとのマスタなどはエクセルから拾っているのですがどうしてもそのまま入れることができないようなものが出てきています。 それが住所歴や昇給歴などのその個人によって複数あったりなかったりするものです。 Excel管理だったので 社員CD 氏名 昇給日 基本給 年齢給 123 A 2018/10/01 350000 50000 2018/04/01 355000 52000 124 B 2018/10/01 360000 65000 2018/04/01 355000 52000 この時、テーブルの設計はどのようにしたらいいでしょうか? ★これは年に数回発生するものでトランザクションとしてT_昇級ですね 社員CDと氏名のどちらかの空白セル埋めて、埋めた列(フィールド)にM_社員台帳をルックアップし リレーションによりM_社員台帳の項目を表示できます >社員CDと氏名のテーブルを作成するのはわかるのですが、 昇給額のようなものはどのようにテーブルを作り、 どのように他のテーブルとつなげていいのかわかりません・・・ キーポイントはM_社員台帳とT_昇級に1:∞の参照整合性のリレーションです 添付のM_社員台帳の主キーの位置 ★T_昇級のテーブル ・ID ・社員CD ・昇級日 ・基本給 ・年齢給 現場の入力効率を上げるためフィールドのプロパティ―で 次の項目をチェック下さい 1.書式 2.定型入力 3.標題 4.規定値 5.インデックス重複なし 6.フリガナ 7.入力規則 8.IME入力モード、IME変換モード 9.住所入力支援 10.ルックアップ→コンボボックス→値集合タイプ→テーブル/クエリ 11.ルックアップ→コンボボックス→値集合タイプ→値リスト
その他の回答 (2)
- kkkkkm
- ベストアンサー率66% (1719/2589)
> 社員コードが重複していてもリレーションシップを組めますよね?? 社員CDと氏名のテーブルで重複はありえませんが、昇給額のテーブルではあり得ます。 > データ型など設定はすべて一緒 フィールドサイズなども確認してみてください。
お礼
解決しました!! ありがとうございます♪
- kkkkkm
- ベストアンサー率66% (1719/2589)
昇給額のテーブルは 社員CD 昇給日 基本給 年齢給 123 2018/10/1 350000 50000 123 2018/4/1 355000 52000 124 2018/10/1 360000 65000 124 2018/4/1 355000 52000 で社員CDと氏名のテーブルとりレーションシップで社員CD同士を繋げておけばいいと思います。
補足
回答ありがとうございます。 社員コードが重複していてもリレーションシップを組めますよね?? 試してみましたが、何度も「同じデータ型で、同じ数のフィールド・・・」と出ます 確認してもデータ型など設定はすべて一緒なので大丈夫だと思うのですが・・・
お礼
すごく詳しいご説明ありがとうございます(´;ω;`) おかげさまで理解できました。 また何かありましたら宜しくお願い致します。