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

例題6 商品の価格を分析する

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

商品マスタを管理する場合、商品ごとに次のような価格を管理する必要があります。

  • 販売単価:標準販売価格(いわゆる定価です)
  • 仕入れ単価:標準仕入れ価格
  • 売上原価:仕入れ単価が常に固定であれば、仕入れ単価=売上原価となりますが、実際には仕入れ単価は市場環境などによって変動します。
    仕入れのたびに異なる商品仕入れ単価を元に、在庫している商品の在庫評価額としての単価をそれに合わせて再計算します
    これを商品の売上原価といいます
    利益の計算をする際、販売単価-売上原価という形で使用します

問題

商品の価格を管理するために必要なエンティティを考慮してER図を見直してください。

解答

商品:属性削除
*商品コード  
 商品名前  
 
価格種別
*価格種別コード  
*価格種別名称  
 価格種別コメント  
価格種別(例)
  1.標準販売価格
  2.仕入単価
  3.売上原価
 
商品価格
*商品コード(FK1) 
*価格種別コード  
*商品価格適用開始日  
 商品価格適用終了日  
 単価  
 
スーパータイプ:受注明細 :属性追加
*受注注文番号(FK1) 
*商品コード(FK2、FK3)3.
 価格種別コード(FK3)3.
 商品価格適用開始日(FK3)3.
 営業値引き承認フラグ  
 営業値引き理由  
 営業値引き非承認理由  
 値引き詳細番号(FK4) 
 消費税額(導出) 
 税抜金額(導出) 
 予定納期日付  
 受注数量  
 変更後最終受注数量  
 ステータス  
 
発注明細:属性追加
*発注注文番号(FK1) 
*商品コード(FK2)3.
 価格種別コード(FK3)3.
 商品価格適用開始日(FK3)3.
 発注数量  
 値引き額  
 消費税額(導出) 
 発注金額計(導出) 
 受注注文番号(FK3) 
 確定納期日付  

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

  1. 商品単価には複数の性格があり、その単価の種類によって利用する部門も異なります
    「価格種別」エンティティを作成することによって、さまざまな価格体系に柔軟に対応することができます
    新しい価格種別ができたときには、「価格種別」エンティティに行を追加するだけでよいため、エンティティの追加や属性の追加、といった大幅な変更作業が不要になります
  2. それに伴って、「商品」エンティティと「価格種別」エンティティ間に多対多のリレーションができるため、間に交差エンティティ、「商品価格」エンティティを追加しました
  3. 「商品」エンティティからは商品価格という属性はなくなり、代わりに商品価格を参照する必要のある「受注明細」エンティティと「発注明細」エンティティから、「商品価格」エンティティヘのリレーションを引きます

< 前へ | 6.1 【設問】受発注(2/3) | 次へ >

解説トレーナー

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

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

■認定・受賞

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

Page Top