6.1 【設問】受発注(1/3)|エディラボ

お問い合わせ・お申し込みはお気軽に「0120-876-544」

  • 研修コースをさがす
  • サービスをさがす
  • 新着情報
  • 無料セミナー/イベント情報

6.1 【設問】受発注(1/3)

例題3 受発注エンティティ間にリレーションを引く

まず、業務の現状を説明します。
それを把握した上で、続く問題に答えなさい。

受注のうち、倉庫で在庫引当ができなかった分については、仕入先に発注します。
発注時に数量と納期を決めます。
仕入先から注文講書が到着した時点で、納期確定となります。
仕入時に使用する発注伝票は、受注時に使用する注文伝票と同じ内容のものを使用します。

Q 問題

商品ごとに仕入先は1箇所だけという前提でモデルを考えてください。

H ヒント

まず、「発注」エンティティを「受注」エンティティと同様、正規化してください。
その際、「発注」エンティティ、「発注明細」エンティティの一意識別子と、オカレンスが何を示しているかを確認してください。
その上で、「発注」エンティティヘのリレーションシップが、「受注」側のどのエンティティとの間に引かれるかを考えてください。

また、その際、どちらのオカレンスが時系列で先に発生するかを考えて、オブショナリティを設定してください。

参考

本記事では、属性名で使用する「番号」と「コード」を使い分けています。
「番号」は意味をもたない順序番号などを想定しており、「コード」は何らかの意味のある場合に用います。
このような命名規則なども、ドキュメントとして残すことによって、管理すべき名前を整理することができます。

A 解答

図6-5 解答

図6-5 解答

受注
*受注注文番号  
 客先注文番号  
 受注日付  
 受注顧客コード(FK1) 
 受注社員コード(FK2) 
 値引き承認社員コード(FK3) 
 受注部門コード(FK4) 
 全体値引き額  
 消費税額(導出) 
 税抜受注金額合計(導出) 
 納入希望日  
 摘要  
 
スーパータイプ:受注明細
*受注注文番号(FK1) 
*商品コード(FK2) 
 値引き額  
 消費税額(導出) 
 金額(導出) 
 予定納期日付  
 受注数量  
 変更後最終受注数量  
 ステータス  
 
サブタイプ:在庫引当
*受注注文番号(FK1)
*商品コード(FK2) 
*倉庫コード(FK3) 
 引当数量  
 
サブタイプ:発注分
*受注注文番号(FK1) 
*商品コード(FK2) 
*発注注文番号(FK3) 
 発注商品コード(FK4) 
 不足分数量 3.
 
発注
*発注注文番号  
 発注日付  
 仕入先コード(FK1) 
 発注社員番号(FK2) 
 発注金額合計(導出) 
 受注注文番号(FK3) 
 倉庫コード(FK4) 
 全体値引き額  
 消費税額(導出) 
 税込発注金額合計(導出) 
 納入希望日付 3.
 
発注明細
*発注注文番号(FK1) 
*商品コード(FK2) 
 発注数量 3.
 値引き額  
 消費税額(導出) 
 発注金額計(導出) 
 受注注文番号(FK3) 
 確定納期日付 3.
 
社員エンティティ
*社員コード  
 社員氏名  
 所属部門コード(FK)
 
部門エンティティ
*部門コード  
 部門名前  
 部門住所  
 部門電話番号  
 部長社員コード(FK1) 
 
倉庫エンティティ
*倉庫コード  
 倉庫名前  
 倉庫住所  
 倉庫電話番号  
 
在庫エンティティ
*倉庫コード  
*商品コード  
日付  
 現在庫数  
 出荷引当可能量  

解説
(注:番号は解答中の番号と対応します。番号が記載されていない解説は全体に当てはまります)

  • 1. 「発注」エンティティの正規化については、「受注」エンティティの考え方と同じです
  • 2. 商品ごとに、仕入先が1箇所に決まっていることから、「受注」1件に対し、複数の商品在庫に不足があった場合、「発注」が複数対応する場合が考えられます
    「発注」エンティティは、受注時の在庫不足による発注だけではなく、計画発注も含まれます
    これらから、「受注」と「発注」の間のリレーションは、1対多で「受注側」のオブショナリティは任意となります
  • 3. 「発注明細」とリレーションをもつのは、「受注明細」の「発注分」サブタイプになります
    不足した各受注商品明細ごとに「発注明細」1行が対応します
    正規化をした場合、それぞれの属性がどこで管理されるかを下記に示します
  • ● 商品ごとの発注数皇:「発注明細」の「発注数量」

    ● 不足分の発注数量:「受注明細」の「発注分」サブタイプの「不足分数量」

    ● 納期確定:受注確定の条件の中で、「発注分」サブタイプとリレーションをもつ「発注明細」エンティティの「確定納期日付」に値が入った状態です

    ● 納入希望日付:「発注」の「納入希望日付」

    ● 確定納期日付:「発注明細」の「確定納期日付」

  • ● 「社員」「部門」「倉庫」などのマスタ系のエンティティは、必要最小限の属性のみ抽出しています
  • ● 「在庫」エンティティについては、6.1.2「商品エンティティの見直し」で詳細に分析します

データベース設計についてもっと学びたいなら

> Oracle設計 研修コース一覧

具体的な作業イメージが掴みづらい概念設計を詳しく学べるコースです。
技術力に定評のあるトレーナー陣がデータベース設計作業をじっくり丁寧に解説し、スキルアップをサポートします。
また、ご要望に応じて一社向けに研修コースをカスタマイズすることも可能です。

スケジュールガイド

6.1 【設問】受発注(1/3)

エディフィストラーニングHOME