データベースプログラミングに挑戦しよう
あなたは、こんな風に思いこんでいませんか。「自分はプログラマーではないので、データベースにアクセスするコードは書けない」と。
確かに、プロフェッショナルとして活躍するには専門的な深い知識が必要です。しかし、ちょっとしたコツをつかめば誰でもデータベースを操作するプログラムを書くことができます。
Webシステムに関わるITパーソンであれば、たとえプログラミングを仕事とすることがなくても、実地でデータベースを扱った経験がいつかきっと役に立ちます。データベースはWebシステムの中枢です。品質や性能を上げるためにも、製造コストを下げるためにも、データベースに関わる部分がどのような仕組みで作られているかを知ることが大切なのです。
今回は、Ruby on RailsとNetBeansを組み合わせることで、読者の皆様にデータベースプログラミングの初歩を体験していただきます。なお、連載第1回「意外にかんたん! Ruby on RailsとNetBeansのインストール」で作成したRailsアプリケーションapp1を引き続き使用します。
キーワードは「直感的」
いきなりですが、ソースコードのサンプルから見ていただきましょう。
p = Product.find(5963)
製品に関するデータが格納されたproductsという名前のテーブル(表)を想像してください。各製品にはユニークな番号(ID)が付けられています。上記のコードは、IDが5963である製品の行を検索して、その行の内容全体を変数pにセットするというものです。
次に、各製品に対する注文データを格納するordersテーブルを考えます。このテーブルにはproduct_idという名前の列があって、そこに製品IDが記録されています。すると、製品pに対するすべての注文のリスト(配列)は次のように取得できます。
p.orders
そして、各注文の個数を出力するコードはこうなります。
p.orders.each do |order| print order.amount end
奇妙な2つの縦棒の存在が気になるかもしれませんが、このコード全体の意味は直感的に想像できます。注文リストのそれぞれ(each)について、繰り返しある処理をしなさい(do)とプログラムは指示しています。その処理とは、各注文(order)の個数(amount)を出力する(print)ということです。最後のendは、繰り返し処理の終端を示しています。
現実のプログラミングはもっと複雑ですが、基本的にはこのコードの延長線上にあります。ここでは、何となく雰囲気を感じ取っていただければ十分です。