プログラムというか考え方の質問です。
個人的にプログラムをやってきた関係で独りよがりの作り方が多いのを感じるので、
皆さんならどうする物なのかと疑問に思ったので質問とさせてください。
内容は事務系プログラムでありがちな1週間分の注文データを取得し表示すると言う物です。
超基本としては今回の場合はフォームで*年*月が選択されています。
そしてお客様希望で何週目と言う物をさらに選択して初めてデータを取得し表示させます。
カレンダーが月曜日始まりという若干面倒な話もありましたが、それ自体は問題では無くて、
こういった場合の内部処理をどうするのが良いのか?と言う話です。
まず最終的に欲しい(Vue.jsに返す)データとして
11/26 0
11/27 0
11/28 0
11/29 0
11/30 0
12/1 0
12/2 20
のようなデータをPHP側で作成してJSONでVue.jsに返してレンダリングする・・・と言う感じです。
最終的なデータを得るに当たって私としては2つのやり方が思いつきます
(やってる事は一緒ですが)
12月の第一週として11/26-12/2の日付を作成して11/26-12/2の各日付を配列に入れる・・・(1)
1.for等で回して一日ずつSQLを作成して投げる。無ければ0、あればその値を配列に入れて行く
2.BETWEENで期間内のデータを取得して配列に入れる・・・(2)
(今回だと12/2のデータのみが返ってくる)
1と同じくループで(1)の日付を順番で回し(2)の配列を日付で検索して該当すればその数値を(1)に追加?する
・1のように1週間分毎回SQLを投げる方がプログラム的には簡単ですがコスト的にどうか?
・2だとDBへの問い合わせは一回ですむ。その後の配列検索がコスト・処理スピード的にどう?
と言う質問です。
個人的には正直1は無くていつも2で処理しますが、たまに起業などに付き合うとそこのプログラムさん(他の業務と兼任みたいな人)が1のやり方をする事を定期的に見かけます。
個人的に1を辞めさせる理由が明確に説明できないので、10年以上前ならともかく、今として余りに邪道なのか判断しかねたというか証拠というかを示せないなぁと思ったので質問してみます。
色々意見が出るかもしれませんが、この辺を読んでおくと良いよ!等の示せるURL等教えて頂けたらと思います。
よろしくお願い致します。
回答2件
あなたの回答
tips
プレビュー