teratail header banner
teratail header banner
質問するログイン新規登録

質問編集履歴

1

記載内容の不備改善

2020/07/22 06:31

投稿

Schneider
Schneider

スコア0

title CHANGED
File without changes
body CHANGED
@@ -9,20 +9,73 @@
9
9
 
10
10
  ### 起きている問題・自分の対処
11
11
 
12
+ ■起きている問題
12
13
  データのあるテーブルを見ると
13
14
  レベルに応じてidが連番であてられていない。
14
- 当時開発者にるデータ設計が甘いと思われるが、、
15
+ 下記のような構成
16
+ ```
17
+ id|level_name
18
+ 1|初級1-1
19
+ 2|初級1-2
20
+ 3|初級1-3
21
+ 4|初級1-4
22
+ 5|初級1-5
23
+ 101|中級1-1
24
+ 102|中級1-2
25
+ 103|中級1-3
26
+ 104|中級1-4
27
+ 105|中級1-5
28
+ ```
15
29
 
16
- の対応としては、
30
+ ■自分の対
17
31
  そのレベルテーブルは今後変更されないと伺ったため
18
32
  (されてもその場合は相当先)
19
33
  以下のようなコードで乗り切ろうと思う。
20
34
 
21
35
  ```PHP
22
- if($levelID == 101){
36
+ if($levelID == 1){
37
+ $minLevel=1;
38
+ $maxLevel=3;
39
+ }elseif($levelID == 2){
40
+ $minLevel=1;
41
+ $maxLevel=101;
42
+ }elseif($levelID == 4){
43
+ $minLevel=3;
44
+ $maxLevel=101;
45
+ }elseif($levelID == 5){
46
+ $minLevel=3;
47
+ $maxLevel=102;
48
+ }elseif($levelID == 101){
49
+ $minLevel=4;
50
+ $maxLevel=103;
51
+ }elseif($levelID == 102){
52
+ $minLevel=5;
53
+ $maxLevel=104;
54
+ }elseif($levelID == 104){
55
+ $minLevel=102;
56
+ $maxLevel=201;
57
+ }elseif($levelID == 105){
58
+ $minLevel=103;
59
+ $maxLevel=201;
60
+ }else{
61
+ $minLevel=$levelID - 2;
62
+ $maxLevel=$levelID + 2;
63
+ }
23
64
  ```
24
65
 
25
66
  ### 補足情報
26
67
 
27
68
  ちなみに他手段としては以下だが
28
- デメリットを考慮するとその手段を取らない決断に至った。
69
+ デメリットを考慮するとその手段を取らない決断に至った。
70
+
71
+ ・idの振り直し
72
+ →他このような処理がないとも言えない。
73
+ 古いシステムなので結構闇が深い。
74
+ id(101)などでファイル全件検索を掛けても良いが
75
+ それだけでは不安が拭えないため対応を見送った。
76
+
77
+ ・連番の新規カラムを追加
78
+ →恥ずかしながら新規カラム追加を行ったことがない。
79
+ 起こりうる不具合が把握できていなさすぎると感じため対応を見送った。
80
+ こういったコードが記載されていると不具合となる、
81
+ など見識のある方、ご教授いただけると幸いです。