最終決定した仕様
- MySQL(サーバーサイド)+PHP(サーバーサイド)+JavaScript(クライアントサイド)+BootStrap(CSSフレームワーク)で構築
- 標準アクセス制限でログイン
- アカウント(各ユーザは複数の権限に分かれ、できることが変わる)毎にログイン
- 同時接続数制限(MySQL利用なので上限151)は行わない
- 過去実施した結果は予め登録し確認できること(変更は不可)
- 運用PCの画面解像度はFHD(1920×1080)・画面倍率100%(情報量の関係上決め打ち)
- システムは一定期間ごとにリセットが必要(mySQLの設定)
- システムリセットはロジックには組み込まない(都度DBを直接操作する)
8.は予算の関係上はしょったが、それをするのは結局自分だ。自分が楽になるためにも必ず作成しておかなければならない。
さて今回(いろいろと大変ではあったが)やってよかったと思えたことは MySQL の仕事の範囲を広げられたこと。これは本当に大きな成果だった。
声を大にして言いたい。

Viva SQL !
SQLの仕事の範囲を広げられたことによって これまで PHP で行っていた多くの仕事(ロジック)が激減した。
ロジックが減るとは、if else などによる多重条件分岐がなくなる(言い過ぎた。ほぼ無くなる)ことを意味する。これが無くなるありがたみはプログラマーにしか分かるまい。プログラマーのみなさん、そういうことですから。
さて自分これまで SQL 言語について「SELECT *」的な使い方しかしていなかった(今思えばとても恥ずかしい)。

SQLはデータの入れ物
という残念な認識しかありませんから「SELECT *」できれば十分でした。データが取り出せた時点で、はいとても満足。もちろん UPDATE も INPUT も ALTER も使いますよ。使いますけど最低限できればいいです。当然、文法なんか覚えてません。毎回、コピペで修正して終わりです。
それ以上 SQL 言語を学ぼうとしません。知る必要を感じていないので知らないことが恥ずかしくもなんともありません。
が…取り出すしかしないということは…取り込んだ後の仕事は煩雑でした。
多くのテーブルを「SELECT *」で取り込み、それらの配列を PHP でゴリゴリ整形加工していくという、バグの温床を次々と育て、メインテナンスわけわかんない地獄に陥るワケです。
でも、そんなものだと思っているので自分が地獄に落ちていることに気づいていないのは、ある意味幸せだったのかもしれません。
ただ、思うわけです。メインテナンスしたくないなあと。
しかし、SQL を正しく知れば(まだまだ知らないことだらけですが)、PHP で配列を弄っていたのがどれほど無駄なことだったかを思い知ることになります。

今まで自分は何をやっていたんだ…
と激しく後悔することになるでしょう。ええなりました。
SQL は入れ物ではなく自分にとって一番都合のよい一覧表を作り出す道具でした。
SQL で取り出したとき既に自分が欲しい配列になっているので PHP であれやこれや弄ることが限りなくなくなります。
逆に、取り出した後に弄らなければならないとしたら、それは取り出し方に問題があるということに他なりません。SQL文を見直すときです。

PHPの仕事はデータをセットしていくだけ
にします。何て楽ちんなんでしょう。
今までバグの温床だった(メインテナンスの敵だった)PHP の多分岐プログラムとはさようならです。本当に必要な分岐だけで済みます。
ということで PHP 配列操作猛者のみなさん!ぜひ SQL 言語を覚えて幸せになりましょう という話しでした。

コメント