Microsoft Access Club Access超初心者対象Forum Access初級者対象Forum Access初・中級者対象Forum Access VBA Tips Forum DAO、ADO、SQL Forum

     

リストへもどる

投稿記事の一括表示

タイトルテーブルの作成と構成
記事No172253
投稿日: 2018/04/23(Mon) 17:04
投稿者mike
解決済: ON
小さな工事業者に努めています。
この度、Accessにて、工事の受注〜請求〜入金に関する
一連の管理ををやりたいと思っています。

[受注テーブル]主キーは工事CD
工事CD、得意先CD、受注年月日

[受注明細テーブル]主キーは受注明細ID(オートナンバー)
受注明細ID、工事CD、工事名、受注金額

[請求テーブル]主キーは請求CD
請求CD、請求額、請求日、得意先CD、受注明細ID

[入金テーブル]主キーは入金ID(オートナンバー)
入金ID、受注明細ID、入金額、入金日、得意先CD、請求CD

[得意先テーブル]主キーは得意先CD
得意先CD、得意先名

[受注テーブル]の工事CDは、追加工事も同じ工事CDで
管理をしたいため、[受注明細テーブル]を設けて、こちらで
受注金額を管理することにしました。

[請求テーブル]は、[受注明細テーブル]の受注明細ID
一件につき、請求書を一件提出するので、受注明細IDと
一対一になります。

[入金テーブル]は、[請求テーブル]の請求CD一件に対し
入金があるので、[入金テーブル]の請求CDと一対一になります。
また、[受注明細テーブル]の受注明細IDと、[入金テーブル]の
受注明細IDとも一対一になります。

質問です。
テーブルの正規化について、大きな間違い・勘違いをしているから
一対一になったのでは?と思うのですが、自分では気づくことが
できません。下手な説明ですみませんどなたか助けてください。
よろしくお願いいたします。

タイトルRe: テーブルの作成と構成
記事No172254
投稿日: 2018/04/24(Tue) 09:34
投稿者hatena
解決済: ON
> [請求テーブル]は、[受注明細テーブル]の受注明細ID
> 一件につき、請求書を一件提出するので、受注明細IDと
> 一対一になります。

一対一の関係ならテーブルを分ける必用はないです。
また、重複するフィールドを両者で持つ必用もないです。

請求関係のフィールドを[受注明細テーブル]に持たせればいいでしょう。

[受注明細テーブル]
受注明細ID、工事CD、工事名、受注金額、請求日、請求金額


得意先CD は、[受注テーブル]から引っ張ってこれるので、必要ないです。

> [入金テーブル]は、[請求テーブル]の請求CD一件に対し
> 入金があるので、[入金テーブル]の請求CDと一対一になります。
> また、[受注明細テーブル]の受注明細IDと、[入金テーブル]の
> 受注明細IDとも一対一になります。

これも確実に一対一なら、分ける必用はないです。

[受注明細テーブル]
受注明細ID、工事CD、工事名、受注金額、請求日、請求金額、入金額、入金日

ただ、1請求に対して分割払いする可能性があるなら、分けたほうがいいでしょう。
その場合は、下記のようになります。


[受注明細テーブル]
受注明細ID、工事CD、工事名、受注金額、請求日、請求金額

[入金テーブル]主キーは入金ID(オートナンバー)
入金ID、受注明細ID、入金額、入金日

タイトルRe^2: テーブルの作成と構成
記事No172258
投稿日: 2018/04/24(Tue) 12:32
投稿者mike
解決済: ON
hatenaさん
回答ありがとうございました。

[請求テーブル]は確実に一対一なので、仰るとおりに
[受注明細テーブル]と統合することにしました。

>ただ、1請求に対して分割払いする可能性があるなら、分けたほうがいいでしょう。

よく考えてみたら、分割払いの可能性も出てきたので
[入金テーブル]も提案していただいた構成にしようと
思います。

本当に助かりました。
ありがとうございました。

- 以下のフォームから自分の投稿記事を修正・削除することができます -
処理 記事No パスワード

ページの先頭へ 前ページへ戻る