【パワー系PG】ハードコーディングはやめてDBMSを使いたい
あなたのプログラム、「ハードコーディング」してませんか?
ハードコーディングとは簡単に言うと以下のような感じ
内容としては業務データをプログラムで作っている処理。
int input; scanf("%d", &employeeNo); if(employeeNo< 1&& employeeNo> 100){ //①の業務データ } else if(employeeNo< 101 && employeeNo> 200){ //②の業務データ } else if(employeeNo< 201 && employeeNo> 300){ //③の業務データ } else if(employeeNo< 301 && employeeNo> 400){ //④の業務データ } else if(employeeNo< 401 && employeeNo> 500){ //⑤の業務データ } else if(employeeNo< 501 && employeeNo> 600){ //⑥の業務データ } else if(employeeNo< 601 && employeeNo> 700){ //⑦の業務データ } else if(employeeNo< 701 && employeeNo> 800){ //⑧の業務データ }
あっ、パワー系PGが書いたコードか!!!
さて、上のコードで気になるのが何点か。
- 1とか100とか101とか200って何ぞ??
- コード量にパワーを感じる
コードを書いていない側からすると
色々気になってくるコードだね。
卒業する方法
- 1とか100とか101とか200って何ぞ??
- コード量にパワーを感じる
仰る通りです。
パワー感じますよね。
1とか100とか101とか、パッと見、数値の意味がわからんちんですな。
そもそも、
業務データを取り扱うときは
プログラムにガリガリ書くべきではないです。
まあ、当たり前の話です。
業務データを取り扱うときは
プログラムに直接持たせるのではなく、
DBMS(データベース管理システム)を使いましょう。
言語とDBMSを連携するには相応のライブラリや
フレームワークを流用するのが筋です。
DBMSも、色々種類があるので何か自分に合うものを探すと良いです。
例えば「C言語とMySqlの連携」を例に挙げるなら、
以下の記事辺りを参考にしてください。
d.hatena.ne.jp
ぐぐればいくらでも出ます。
あと、データベースにアクセスするためには
SQL文というのを覚えないといけません。
まあ単純な文なら一瞬で覚えられます。
cfm-art.sakura.ne.jp
書き方のイメージとして以下のような形式。
SELECT [営業所種別] FROM [従業員テーブル] WHERE [従業員番号]
SQL文はライブラリやフレームワークによって
プログラム内に記載できます。
例えば、WHEREの後には条件を記載するのですが、
条件に先ほど定義したemployeeNoを渡すこともできます。
※その場合はemployeeNoに対するレコードをDBからもらえます。
ですので、
データベースから引っこ抜いた営業所種別のレコードをそのまま流用すれば
プログラムとしては数行で済むわけです。
業務データはDBMSを使おう。