
アクセスのテーブルを分ける理由に関して質問です。
現在参考書を利用してデータベースの勉強をしてます。
試行錯誤中で弱っています。
受注テーブル(受注コード、受注日、締切日、出荷日、顧客コード)
受注明細テーブル(受注コード、商品コード、数量)
とテーブルが分かれている例題がありました。
テーブルを2つに分ける理由がよくわかりません。
もし1つのテーブル
(受注コード、受注日、締切日、出荷日、顧客コード、商品コード、数量)
などとまとめたら何か問題があるのでしょうか?
どうぞよろしくお願いします。
A 回答 (5件)
- 最新から表示
- 回答順に表示
No.5
- 回答日時:
補足)
システムの核となるテーブルは分ける
受注テーブル(受注コード、受注日、締切日、出荷日、顧客コード)
受注明細テーブル(受注コード、商品コード、数量)
入力用の1次的なテーブルは1つにする。
(受注コード、受注日、締切日、出荷日、顧客コード、商品コード、数量)
という使い方はあります。
更新に必要な情報は1テーブルに格納し、個々のテーブルへはこの情報から更新させる。
別々で
更新用受注テーブル(受注コード、受注日、締切日、出荷日、顧客コード)
を入力した2日後に
更新用受注明細テーブル(受注コード、商品コード、数量)
を入力とすると同期がとれませんので
(受注コード、受注日、締切日、出荷日、顧客コード、商品コード、数量)
を一度に入力させるという意味です。
基本的には無駄のないよう正規化します。
テーブルというものなんでもかんでも分けるかというとそうでもないです。
用途によって、どういう構造にするかは変わります。

No.4
- 回答日時:
顧客コードという項目があるので、顧客情報が入るテーブルがあると思いますが、いかがでしょうか?
あるとしたら…どうして顧客情報を別テーブルに入れるのか。
受注ごとに顧客の名前や住所、電話番号を受注テーブルとかに入れるのは、入力者も、また処理的にも負担がありますよね。
でも顧客コードで紐付けられれば、入力者も処理的にも楽ですよね。
#2さんとかぶりますが、要するに「また住所を入力するのかョ…」といった面倒くささが解消されますよね、入力者も処理的にも。
また顧客コードで紐付けられれば、顧客の名前や住所を受注テーブルに入れる必要がないので、
データ量のエコにも。
No.3
- 回答日時:
実業務に就くと分かるのですが、よくあるパターンは
一つの受注で複数の製品を出荷するというものです。
例えば、プリンタの注文を貰ったとして、予備のインクや
用紙も一緒に注文されることはよくありますね。
この場合は注文:明細が1:nになります。質問者さんの
設計だと、一つの注文で一つの商品しか管理できません。
しかし、受注本体と明細を分け、受注コードで紐付けする
ことにより、1:nが実現できるのです。
実務というほどまだ勉強できていませんでしたので、
わかりやすい例をありがとうございます。
一つのテーブルでは色々制限や面倒が生じることがわかりました。
ありがとうございます!
No.2
- 回答日時:
簡単に言うと、分けた方が楽で便利だからです。
例の場合、1つのテーブルだと、
商品1つごとに、受注コード、受注日、締切日、出荷日等を入力しないといけませんが、
分けておけば、
受注コード、受注日、締切日、出荷日、顧客コード
は商品ごとに入力する必要がありません。
簡単なフォームを作って、
サブフォームを受注明細にしてみれば
実務的に良く分かると思います。
早々の回答をありがとうございます。
利便性を考えて作られていたのですね。
まだまだ実績が足らないのがよくわかりました。
ありがとうございます。
No.1
- 回答日時:
リレーショナルデータベース理論を勉強してください。
そうやってテーブルを分けたりすることを正規化と呼びます。
正規化について、ここで説明するには、無理があります。
ちなみに、上記の例ではなぜダメか。
ひとつの注文に対して複数商品があったとします。
テーブルをひとつにしていたとします。
出荷日を更新するときは、さて、どうなりますか?
そうそうのご返答ありがとうございます。
リレーショナルデータベース理論の勉強もしてみます!
正規化という言葉も参考書に出てきていましたが、それに関してももう少し勉強が必要なようです。
ありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(データベース) accessについて 2 2022/05/31 16:58
- 経営情報システム accessでの請求管理について 12 2022/06/11 16:20
- その他(データベース) accessでの請求管理について 2 2022/06/13 21:51
- Visual Basic(VBA) ExcelからAccessのテーブルに書き込む時に時間がかかる 1 2022/10/14 20:38
- Access(アクセス) AccessVBAで降順にするテーブル作成クエリを使用して作成したテーブルを削除し同一のテーブル作成 1 2023/01/06 11:17
- PostgreSQL PostgressからMySQL(MariaDB)へ構造を変更する際のTimestamp等について 2 2023/04/04 12:09
- SQL Server DBのテーブルの設計ができず困っています。 2 2023/06/29 16:43
- その他(データベース) 更新クエリをリンクデータベーステーブルに実行し実行時エラー3362固有インデックスに重複する値が含ま 1 2022/09/21 11:44
- その他(データベース) IT用語について質問です。 以前ITパスポートの試験を受けた際にデータベースが何の集まりかについての 2 2022/12/10 12:29
- Excel(エクセル) VBA でvlookup エラーなどは削除したい 8 2022/12/30 04:03
このQ&Aを見た人はこんなQ&Aも見ています
-
Access 同じデータをたくさんのレコード(同一列)に一度に入力するには
Access(アクセス)
-
Access サブフォームでの選択行の取得
その他(データベース)
-
ACCESSで空白のデーターをクエリで判定/識別する方法を教えてくださ
Access(アクセス)
-
-
4
AccessからExcelにエクスポートする時に常に上書きしたい
Excel(エクセル)
-
5
Accessでのテーブルの分け方
Access(アクセス)
-
6
2つのテーブルに共通するレコードを削除したい
Access(アクセス)
-
7
フォームを開くときに、コンボボックスの値を選択(アクセスVBA)
Visual Basic(VBA)
-
8
Accessの条件付き書式設定で、複数の条件が一致した時の書式を設定したい
その他(Microsoft Office)
-
9
AccessでIDを入力したら他の項目も自動で表示
Access(アクセス)
-
10
主キーはオートナンバー型のIDを使った方が良いのか
Access(アクセス)
-
11
access マクロでのフィルタの解除の方法
Access(アクセス)
-
12
Access レポート印刷するときに1ページに収める方法
Access(アクセス)
-
13
ACCESS VBA でのエラー解決の根拠がわかりません エラー「イベントプロパティに指定した式・・
Access(アクセス)
-
14
データベースの2GBって・・・?
その他(データベース)
-
15
ACCESS──メインフォームでサブフォームのレコード件数をカウントしたい
Access(アクセス)
-
16
サブフォームの切り替え方を教えてください
その他(データベース)
-
17
MS Accessでフォームの「開く時」と「読込み時」のイベントの違い
Access(アクセス)
-
18
Accessのフィールド数が255しかない=業務では使えない?
PowerPoint(パワーポイント)
-
19
Accessで、固定アルファベット+オートナンバーを表示する
Excel(エクセル)
-
20
Accessでvlookupみたいなことはできますか。
その他(データベース)
関連するカテゴリからQ&Aを探す
今、見られている記事はコレ!
-
釣りと密漁の違いは?知らなかったでは済まされない?事前にできることは?
知らなかったでは済まされないのが法律の世界であるが、全てを知ってから何かをするには少々手間がかかるし、最悪始めることすらできずに終わってしまうこともあり得る。教えてgooでも「釣りと密漁の境目はどこです...
-
カスハラとクレームの違いは?カスハラの法的責任は?企業がとるべき対応は?
東京都が、客からの迷惑行為などを称した「カスタマーハラスメント」、いわゆる「カスハラ」の防止を目的とした条例を、全国で初めて成立させた。条例に罰則はなく、2025年4月1日から施行される。 この動きは自治体...
-
なぜ批判コメントをするの?その心理と向き合い方をカウンセラーにきいた!
今や生活に必要不可欠となったインターネット。手軽に情報を得られるだけでなく、ネットを介したコミュニケーションも一般的となった。それと同時に顕在化しているのが、他者に対する辛らつな意見だ。ネットニュース...
-
大麻の使用罪がなかった理由や法改正での変更点、他国との違いを弁護士が解説
ドイツで2024年4月に大麻が合法化され、その2ヶ月後にサッカーEURO2024が行われた。その際、ドイツ警察は大会運営における治安維持の一つの方針として「アルコールを飲んでいるグループと、大麻を吸っているグループ...
-
ピンとくる人とこない人の違いは?直感を鍛える方法を心理コンサルタントに聞いた!
根拠はないがなんとなくそう感じる……。そんな「直感がした」という経験がある人は少なくないだろう。ただ直感は目には見えず、具体的な説明が難しいこともあるため、その正体は理解しにくい。「教えて!goo」にも「...
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Access2021 「ISNULL関数には引...
-
SQL Server 2005 Expressで営業...
-
MS ACCESS 商品価格変更時の該...
-
受注明細テーブルについて
-
Accessでのあいまい検索...
-
重複するデータのデータベース...
-
アクセスのテーブルを分ける理...
-
請求先
-
Accessフォーム全レコードをPDF...
-
Accessでクエリの作成、多対1対...
-
Accessの帳票フォームで重複デ...
-
曜日を表す項目
-
Excel 2019 のピボットテーブル...
-
INSERT INTO ステートメントに...
-
「直需」の意味を教えてください
-
Accessでテーブル名やクエリ名...
-
エクセルVBAで5行目からオート...
-
Oracle 2つのDate型の値の差を...
-
Accessクエリーで両方のテーブ...
-
変数が選択リストにありません
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Accessの帳票フォームで重複デ...
-
Accessフォーム全レコードをPDF...
-
あるフィールドの最大値を条件...
-
MS ACCESS 商品価格変更時の該...
-
アクセスのテーブルを分ける理...
-
ACCESS VBA クエリを開く
-
Accessでクエリの作成、多対1対...
-
Excelで重複する情報に番号を付...
-
【Access2000】マシンIDの取得方法
-
フィールド名が取得したい
-
再計算って出来ますか?
-
受注明細テーブルについて
-
SQL文でのDISTINCT
-
accessについて
-
Access2021 「ISNULL関数には引...
-
usingの意味がわからないのですが
-
曜日を表す項目
-
集計結果を別テーブルに更新ク...
-
SQL Server 2005 Expressで営業...
-
【Accessクエリ】存在しないデ...
おすすめ情報