昨夜考えたけれど、データ件数を増やした場合、表示上のスクロールがーとか、凄く安易に考えてたけど、そうでは無いと気付いた。
原稿のXRESの規約では、応答3秒越えるプロセスは強制終了とかはあるにせよ、SQL素人の自分が組んだプログラムで、CPU負荷増大なんて真似を引き起こしてはたまらない。良く考えると「通常ダメージ」とか「奥義ダメージ」とか、全キャラ共通で該当しちゃう条件含んでる時点で「絞込み」をちゃんと考えないといけない事に思い当たった。
絞込みは、条件の追加のところで考えていたにせよ、それでも結果が相当数になる可能性まで考えが及んでいなかった。数が多ければスクロール、あるいは次ページで…とか考えていたけれど、PCならいざ知らずスマホで次ページ繰りながら参照なんてナンセンスな気がする。
という事で、当然絞込み用の条件を設けるのは勿論の事、事前に検索結果件数の制限を設けようかと思う。検索結果が100件もあったら、恐らく検索としては失敗だろう。10件では少なすぎるかもしれない。実際の件数については検索性能など色々勘案して可変にできるようにするとして、上限を越えた検索結果になる場合はメッセージを出して検索しないなどの処理を盛り込む。
具体的にはまずSELECT COUNT(だっけ)して、規定数を超えたらその場で復帰。制限以内なら実際にSELECT&結果の処理を実施するという形だろう。
SELECT COUNTと実SELECTが同等のCPU消費になるという可能性もあるので、その辺りも注意しないといけないはず。その為にもテスト用データを増やす必要があるので、一通りの実装が終わったらデータ入力をしようかな…。
データ入力の事も考えたら、現状表示は日本語のみを対象にしているが、使うかどうかは別にして英語表記も含めるべきではないかしらん。当然フィールドに英語表記も追加しないとならないのでテーブル自体も変更が必要になる。でも、使うかどうかはさておき、フィールドだけは追加しようかな。ただ、日本語表記はデータ集める手段はあるけれど、英語表記に関しては所持しているキャラクター以外は確認ができない。(海外向けサイトにならあるかもしれないが)
従って、フィールドは設けるけど、データは無しで、データが無い部分は日本語のまま表示するなどの考慮が必要になりそう。
欲をかいて実装頓挫という事にならないよう、色々見極めも必要になるだろう。まず着実に進めていく事を第一にしよう。

