パソコンはアクセスとエクセルマクロの入門書を読み終えたレベルです。
只今、注文実績管理をする為にアクセスを構築していますが思うようにできません。
職場でPCの相談する相手がいないため、大変困っています。どなたかお知恵をください。
相談の内容ですが、【C】の注文テーブルにある「注文番号」と「数量」と「日付」で
期間中の発注実績の集計をしたいと考えています。
【B】と【C】がまったく関連付けることができません。
【A】顧客テーブル
(1)ID(オートナンバー)
(2)発注コード
(3)氏名
(注)顧客テーブルにある「発注コード」がローマ字と数字の組み合わせで
、これでリレーションシップを設定したいのです。
【B】商品テーブル
(1)ID(オートナンバー)
(2)注文番号
(3)品名
(4)金額
【C】注文テーブル
(1)ID(オートナンバー)
(2)発注コード
(3)日付
(4)氏名
(5)注文番号1
(6)注文番号1(数量)
(7)注文番号2
(8)注文番号2(数量)
(9)注文番号3
(10)注文番号3(数量)
・
・
・
注文番号50
注文番号50(数量)
No.2ベストアンサー
- 回答日時:
>【A】顧客テーブルは (2)の発注コードが主キー
>【C】注文テーブルは、(1)のID(オートナンバー)が主キーです。
これはOKです。ただし、注文テーブルのID は 注文ID というように内容が分かる名前に変更しましょう。
>【B】商品テーブルは、(1)のID(オートナンバー)が主キー
これは、ID を主キーにするなら、リンク先も ID(長整数型)にする必要があります。
注文番号をリンク先に格納したいのなら、「注文番号」を主キーにする必要があります。
注文テーブルは、下記のように2つに分割してください。
【C】注文テーブル
(1)注文ID(オートナンバー)
(2)発注コード
(3)日付
(4)氏名 ←この氏名が顧客テーブルの氏名ならば、このフィールドは不必要
担当者とか別の内容のデータならOK、その場合は意味を表すフィールド名に変更したほうがよい。
【D】注文明細テーブル
(1)注文明細ID(オートナンバー型)
(2)注文ID(長整数型)
(3)注文番号 ←商品テーブルの主キーが「注文番号」の場合
(4)数量
ご回答くださいましてありがとうございます。
私の理解が不足しているせいかまだ解決に至っておりません。
下記にて、より具体的な質問を改めて用意いたしました。
アドバイス頂けると幸いです。
http://oshiete.goo.ne.jp/qa/8102190.html
No.1
- 回答日時:
テーブル設計が間違っています。
データペースのテーブル設計にはセオリーがあり、それは「正規化」と言われてます。
とりあえずWEBで「正規化」をキーワードで検索してどのようなものなのか大まかに理解しましょう。
あと、テーブルには、主キーが原則として必須になります。
現状のテーブルの主キーは何になっているのか明確にしてください。
例えば、顧客テーブルの「発注コード」、これは、重複がなく主キーになっていますか。
これでリレーションシップを設定するには主キーにする必要があります。
商品テーブル の「注文番号」、これも主キーになってますか。同じく主キーにしないとリレーションシップは設定出来ません。
注文テーブルは「正規化」できてません。正規化するには、注文テーブル、注文明細テーブル と2つに分ける必要があります。これについては、上記の主キーに設定を聞いてからになりますね。
この回答への補足
早速の回答ありがとうございます。
正規化については、本日、よく調べて理解を深めようと思います。
さて、主キーの設定についてですが、以下の通りになっています。
【A】顧客テーブルは (2)の発注コードが主キー
【B】商品テーブルは、(1)のID(オートナンバー)が主キー
【C】注文テーブルは、(1)のID(オートナンバー)が主キーです。
現在、【A】の顧客テーブルの主キーを設定している発注コードと【C】の注文テーブルの
発注コードをリレーションしています。参照整合性はできていません。
【B】の商品テーブルもリレーションをとり、商品テーブルにある商品番号だけ入力することにより、
商品名と金額を入力しなくてもいいような形にしたいのですが、お手上げです。
色々試しましたが、何に紐づければ良いのか、わかりませんでした。
商品だけで300アイテムもあるので、都度リストを見ながら商品名と金額を入力するのは、膨大な時間を
奪われるのでなんとかしたいと思った次第です。
ちなみに【C】の注文テーブルは、いわゆる発注書で100人が一か月複数回(2~3回)使用しています。
発注書の束のようなイメージです。
回答者様がおっしゃるとおりテーブルの設計が間違っていると思います。
適正な管理をするために、色々長い時間考えておりますが、よい形にならず、相当苦しんでおります。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- Access(アクセス) access,vbaでフォルダ内のファイルをテーブルにインポート、ファイル名もフィールドに追加したい 1 2022/08/31 11:11
- その他(ネットショッピング・通販・ECサイト) moonwalkbabyで注文されて届いた方いますか? 2 2023/04/12 23:31
- 楽天市場 先程のにありがとうございます。ご入金の確認できました。 早速出荷の準備を行いますので、ご安心ください 1 2022/12/21 11:07
- Excel(エクセル) スプレッドシートのハイパーリンクについて 2 2023/03/22 00:47
- Excel(エクセル) エクセルデーターの並び替え 5 2022/08/06 09:59
- その他(ネットショッピング・通販・ECサイト) krsaidサイトで4点購入しました。12月15日ににありがとうございます。ご入金の確認できました。 1 2022/12/21 09:15
- その他(ネットショッピング・通販・ECサイト) 住所 3 2022/12/02 10:36
- その他(お金・保険・資産運用) Amazonか詐欺か? カードも実名もあるメールはどうすれば良いでしょうか。 8 2022/10/26 08:32
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SQL Server management studio ...
-
テーブルリンク リンク元を知...
-
飲み会で、座敷orテーブルどち...
-
L2SWはARPテーブルを持っている?
-
外部キーだけのテーブル(主キ...
-
論理名とコメント構文(?)について
-
複数テーブルにわたるCOUNT
-
男性と2人で飲食店に行きテーブ...
-
会社の飲み会の幹事になり、座...
-
まるいテーブル 円い 丸い 漢字...
-
更新されたテーブルを表示したい
-
【PHP】SQL文のSUM関数で出力し...
-
Oracleのテーブルサイズ
-
ACCESSで3ファイルを結合して、...
-
BLOB項目追加後のInsert実行エ...
-
1対1のリレーション(主キー同...
-
面接のときテーブルが正面に。...
-
下の画像はSQLの4大命令の性質...
-
一致するデータのみ削除したい
-
「テーブルに座って……」という...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
L2SWはARPテーブルを持っている?
-
外部キーだけのテーブル(主キ...
-
男性と2人で飲食店に行きテーブ...
-
テーブルリンク リンク元を知...
-
会社の飲み会の幹事になり、座...
-
「テーブルに座って……」という...
-
アクセスのリンクテーブル一覧...
-
ターンテーブルの、電子レンジ...
-
飲み会で、座敷orテーブルどち...
-
【PHP】SQL文のSUM関数で出力し...
-
まるいテーブル 円い 丸い 漢字...
-
テーブル:生徒名簿 生徒名簿の...
-
1対1のリレーション(主キー同...
-
論理名とコメント構文(?)について
-
面接のときテーブルが正面に。...
-
一致するデータのみ削除したい
-
複雑なSQL文について
-
SQL構文です 画像のようにした...
-
件数の多い順にselect
-
お金持ちのテーブル
おすすめ情報