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

SQLアンチパターンを読んでリファクタしてみた

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for Genki Sano Genki Sano
September 28, 2022

 SQLアンチパターンを読んでリファクタしてみた

Avatar for Genki Sano

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 グラフ系列シート項目/グラフ横軸シート項目
 グラフ系列所属グループ/グラフ系列所属グループ