前提・実現したいこと
レベルが定められたデータがあり、
登録者のレベルから±2に該当するデータを
表示できるような検索機能を追加をしたい。
どのような手段が最善か議論したいです。
(質問の仕方も意見もらえると助かります)
起きている問題・自分の対処
■起きている問題
データのあるテーブルを見ると
レベルに応じてidが連番であてられていない。
(下記のような構成)
id|level_name 1|初級1-1 2|初級1-2 3|初級1-3 4|初級1-4 5|初級1-5 101|中級1-1 102|中級1-2 103|中級1-3 104|中級1-4 105|中級1-5
■自分の対処
そのレベルテーブルは今後変更されないと伺ったため
(されてもその場合は相当先)
以下のようなコードで乗り切ろうと思う。
PHP
1if($levelID == 1){ 2 $minLevel=1; 3 $maxLevel=3; 4}elseif($levelID == 2){ 5 $minLevel=1; 6 $maxLevel=101; 7}elseif($levelID == 4){ 8 $minLevel=3; 9 $maxLevel=101; 10}elseif($levelID == 5){ 11 $minLevel=3; 12 $maxLevel=102; 13}elseif($levelID == 101){ 14 $minLevel=4; 15 $maxLevel=103; 16}elseif($levelID == 102){ 17 $minLevel=5; 18 $maxLevel=104; 19}elseif($levelID == 104){ 20 $minLevel=102; 21 $maxLevel=201; 22}elseif($levelID == 105){ 23 $minLevel=103; 24 $maxLevel=201; 25}else{ 26 $minLevel=$levelID - 2; 27 $maxLevel=$levelID + 2; 28}
補足情報
ちなみに他手段としては以下だが
デメリットを考慮するとその手段を取らない決断に至った。
・idの振り直し
→他このような処理がないとも言えない。
古いシステムなので結構闇が深い。
id(101)などでファイル全件検索を掛けても良いが
それだけでは不安が拭えないため対応を見送った。
・連番の新規カラムを追加
→恥ずかしながら新規カラム追加を行ったことがない。
起こりうる不具合が把握できていなさすぎると感じため対応を見送った。
こういったコードが記載されていると不具合となる、
など見識のある方、ご教授いただけると幸いです。