6.5 【設問】売上分析

6.5 【設問】売上分析

例題27 組織変更に対応できるよう部門エンティティを見直す

また、組織変更が頻繁に行われる場合、時系列で、どの部門による売上が計上されたのかが間違いなく把握できる必要があります。
組織変更に対応するという意味では、部の統合や分割、廃止などのさまざまなイベントに柔軟に対応できるモデルを考える必要があります。

問題

組織変更による統廃合に柔軟に対応できるようなモデルを考えてください。

解答

部門 1.
*部門コード  
*部門開始年月日  
 部門終了年月日 
 部門名 
 組織階層コード(FK1) 
 組織階層開始年月日 (FK1) 
 現在部門フラグ 3.
 
部門履歴 2.
*部門履歴管理番号 
 後部門コード(FK1) 
 前部門コード(FK2) 
 前部門から後部門への変更年月日(FK1) 
 
組織階層 5.
*組織階層コード 6.
*組織階層開始年月日  
 組織階層名  
 階層レベル  
 上位組織階層コード(FK1) 
 組織階層終了年月日  

解説

  1. 2.社内で組織変更が起きた場合、スムーズに業務の引継ぎができるよう、モデルで対応させるためには、組織の情報を履歴で管理する必要があります
    部門を管理するエンティティと、部門の統廃合を管理する部門履歴エンティティに分けて管理します
    部門エンティティに「部門開始年月日」「部門終了年月日」という属性を加えることによって、時系列で部門情報を管理することができます
  2. 部門が統合されてできた場合、現在の部門の前部門は2つ以上あることになります
    その場合、部門履歴エンティティでは、後部門2オカレンスに対してそれぞれ異なる前部門オカレンスが対応します
  3. 部門の履歴を管理すると、組織変更に従ってオカレンスの数が増えます
    現部門のオカレンスを識別しやすくするために、「現在部門フラグ」属性を追加します
  4. 部門別に売上集計や損益集計を計算した後、その上位の部門単位の集計などの処理に対応できるようにするため、部門エンティティに「上位部門コード」を属性として加えます
  5. また、組織階層が深くなってくると、階層の管理が複雑になり、場合によっては、上位部門コードを間違えて入力し、ループしてしまうことも考えられます
    そこで、階層構造のルールを組織階層エンティティという別のエンティティで管理します
  6. 部門の階層ごとに集計処理を行うことができるようにします
    部門の組織階層コード列には、組織を考える際に、組織階層ごとにルールを決めて値を設定します
    コードを割り当てる際には、階層の深さにも対応させるように考えます
    階層ごとに集計する際には、同じ組織階層コードの値をもつ部門ごとに集計処理を行います

< 前へ | 6.5 【設問】売上分析 | 次へ >

解説トレーナー

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

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

■認定・受賞

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

Page Top