Upgrade to Pro — share decks privately, control downloads, hide ads and more …

SQLアンチパターンを読んでリファクタしてみた / sql-anti-pattern-refa...

Genki Sano
September 28, 2022

SQLアンチパターンを読んでリファクタしてみた / sql-anti-pattern-refactored-2022

Genki Sano

September 28, 2022
Tweet

More Decks by Genki Sano

Other Decks in Programming

Transcript

  1. 1.今回の開発内容
 9 • 開発する機能
 ◦ グラフの作成機能
 • 概要
 ◦ とあるタレントマネジメントシステムにおける機能追加


    ◦ 横軸と系列に対して、値を指定することで登録されているデータを
 マッピングする
 

  2. 2.修正前のテーブル構成
 15 column type comment id int(10) series_item_id int(10) 系列項目ID

    series_item_type tinyint(3) 系列項目タイプ(1:所属、2:マスター) x_axis_item_id int(10) 横軸項目ID x_axis_item_type tinyint(3) 横軸項目タイプ(1:所属、2:マスター) ※一部のカラムのみ抜粋

  3. 2.修正前のテーブル構成
 16 column type comment id int(10) series_item_id int(10) 系列項目ID

    series_item_type tinyint(3) 系列項目タイプ(1:所属、2:シート項目) x_axis_item_id int(10) 横軸項目ID x_axis_item_type tinyint(3) 横軸項目タイプ(1:所属、2:マスター) ※一部のカラムのみ抜粋
 所属の集計は 所属グループID マスターの集計は シート項目ID 所属の集計は 所属グループID マスターの集計は シート項目ID
  4. 3.アンチパターンになった箇所
 22 column type comment id int(10) series_item_id int(10) 系列項目ID

    series_item_type tinyint(3) 系列項目タイプ(1:所属、2:シート項目) x_axis_item_id int(10) 横軸項目ID x_axis_item_type tinyint(3) 横軸項目タイプ(1:所属、2:マスター) ※一部のカラムのみ抜粋
 所属の集計は 所属グループID マスターの集計は シート項目ID 所属の集計は 所属グループID マスターの集計は シート項目ID
  5. 5.修正後のテーブル構成
 31 column type comment chart_id int(10) グラフID sheet_item_id int(10)

    シート項目ID column type comment chart_id int(10) グラフID department_group_id int(10) 所属グループID グラフ系列シート項目/グラフ横軸シート項目
 グラフ系列所属グループ/グラフ系列所属グループ