6.2 【設問】受発注~入出荷

6.2 【設問】受発注~入出荷

6.2.3 発注~入荷/仕入

例題11 発注、入荷/仕入エンティティの正規化をする

発注関係、入荷/仕入れ関係のエンティティも正規化を行いましょう。
また、入荷業務に関して調査しているうちに、次のことがわかりました。
仕入を担当している調達部門の社員にヒアリングをしたところ、仕入れた商品は、早く仕入れたものから順に出荷する仕組みが必要だが、今まで手作業で管理していてうまく管理できていない、ということがわかりました。
そこで、商品の先入れ先出しをスムーズに実現するために、商品を入荷した際、入荷日ごと、ロット番号ごとに、実在庫数量、引当可能数量を管理することにしました。

ロット番号とは、たとえば、工場などで製造された商品に、製造の単位ごとに管理するためにつけられる番号です。
製造ロット番号の場合、これを使うことによって、製造年月日や有効期限、製造ラインなどを特定することができ、いつ、どこで製造された製品かをさかのぼって調査することができます。

今回の業務では、入荷時にロット番号を付番することによって、受注時の引当は、入荷年月日の早いものを先に引き当てる、先入れ先出し法を使うことができるようにします。

また、物理的には、入荷された商品を、ロット単位で管理するための棚の位置を管理する必要があります。
棚の情報としては、倉庫の中の東西南北の位置、上下位置を管理する必要があります。
同じロット番号の商品が、複数の棚に納められる可能性がある、という前提でモデリングをしてください。

問題

「受注」エンティティと同様に「発注」から「入荷/仕入」エンティティまでをモデルに表してください。
属性を考える際、発注時に仕入先に送った、図6-13の注文伝票を参考にしてください。

解答

発注
* 発注注文番号    
  発注日付    
  仕入先コード (FK1)  
  発注社員番号 (FK2)  
  発注金額合計 (導出)  
  受注注文番号 (FK3)  
  倉庫コード (FK4)  
  全体値引き額    
  消費税額 (導出)  
  税込発注金額合計 (導出)  
  納入希望日    
 
発注明細
  発注注文番号 (FK1)  
  発注明細注文番号    
  受注注文番号 (FK2)  
  商品コード (FK2、FK3)  
  客先希望納期日付 (FK2) 2.
  価格種別コード (FK3)  
  商品価格適用開始日 (FK3)  
  発注数量    
  値引き額    
  消費税額 (導出)  
  発注金額計 (導出)  
  確定納期日付    
 
入荷仕入
  入荷仕入番号    
  発注注文番号 (FK1)  
  入荷日付    
  仕入先コード (FK2)  
  仕入検品社員番号 (FK3)  
  入荷仕入れ区分   3.
  倉庫コード (FK4)  
  全体値引き額    
  消費税額 (導出)  
  税抜仕入金額合計 (導出)  
 
入荷仕入明細
* 入荷仕入番号 (FK1)  
* 入荷仕入明細番号   1.
  発注注文番号 (FK2)  
  発注明細注文番号 (FK2)  
  商品コード (FK3、FK4)  
  価格種別コード (FK4)  
  商品価格適用開始日 (FK4)  
  仕入数量    
  値引き額    
  消費税額 (導出)  
  発注金額計 (導出)  

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

  • 発注を経ずに、入荷/仕入から処理ができるようにするために、発注と同じ項目を入荷/仕入にも用意しています
    これは発注との重複項目ではありません
    発注で得られる情報は、リレーションで関連づけられていますから、発注後の入荷の場合、これらの属性には値は入りません
  1. 「発注」を経ずに、「入荷/仕入」から処理ができるようにしたため、「入荷/仕入明細」は必ずしも「発注明細」に対応するとは限りません
    このため、「入荷/仕入明細」の一意識別子の一部に、「発注明細」の一意識別子を入れることはできません
    「入荷/仕入明細」の一意識別子は「入荷/仕入番号」と「入荷/仕入」の明細ごとに人工的に一意な番号を生成する、「入荷/仕入明細番号」の複合一意識別子となります
  2. また、前述の問題で、受注明細の一意識別子に「客先希望納期日付」が追加されているので、「発注明細」から「受注明細」を参照する外部キーにこの属性を加えます
  3. 「入荷仕入」エンティティの属性「入荷仕入区分」の値によって、通常の入荷仕入か、発注の変更か、検収の結果の返品か、といった識別を行います

以上で、受注一出荷/売上、発注一入荷/仕入の詳細な分析は一区切りです。
次は実際の商品在庫をどのように管理するかを考えていきましょう。

< 前へ | 6.2 【設問】受発注~入出荷 | 次へ >

解説トレーナー

Oracle / 上流工程 担当 中村 才千代

データベース設計、システム構築の上流~下流工程全般のインストラクターです。SE時代の経験を生かし「業務を知るエンジニアこそDB設計に関わるべき」「DB設計に携わるエンジニアは業務を知る人に知恵を貸してもらう」ことを伝えたいと思っています。

■認定・受賞

2000年 Oracle University「Best Instructor of the Year」受賞
2002年 Oracle University「Best Instructor of the Year」受賞

Page Top