Shoeisha Technology Media

EnterpriseZine(エンタープライズジン)

EnterpriseZine(エンタープライズジン)

テーマ別に探す

Ruby on Railsでデータベースアクセスを直感的に

2008/10/10 11:00

Webシステム開発の生産性を左右する極めて重要な鍵が、データベースアクセスです。プログラマーは多くの時間を割いてデータベースに対して読み書きするコードを書いています。この作業の短縮は開発コストの削減に直結します。
今回は、Ruby on Railsがデータベースプログラミングをどのようにしてシンプルなものにしているかを解説します。
 

データベースプログラミングに挑戦しよう

 あなたは、こんな風に思いこんでいませんか。「自分はプログラマーではないので、データベースにアクセスするコードは書けない」と。

 確かに、プロフェッショナルとして活躍するには専門的な深い知識が必要です。しかし、ちょっとしたコツをつかめば誰でもデータベースを操作するプログラムを書くことができます。

 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は、繰り返し処理の終端を示しています。

 現実のプログラミングはもっと複雑ですが、基本的にはこのコードの延長線上にあります。ここでは、何となく雰囲気を感じ取っていただければ十分です。

※この続きは、会員の方のみお読みいただけます(登録無料)。


※この続きは、会員の方のみお読みいただけます(登録無料)。


著者プロフィール

  • 黒田 努(クロダ ツトム)

    株式会社オイアクス代表取締役社長。東京大学教養学部卒。在ギリシャ日本国大使館、株式会社ザッパラス、株式会社イオレでの勤務を経て、2007 年にRuby on Rails 専門の教育・コンサルティング会社オイアクスを設立。著書に『基礎Ruby on Rails』(共著、インプレスジャパン刊、2007)...

バックナンバー

連載:NetBeansで始めるRuby on Rails
All contents copyright © 2007-2018 Shoeisha Co., Ltd. All rights reserved. ver.1.5