fixedpoint.jp - Octopi on Rails




Octopi on Rails

Ruby on Rails では ActiveRecord というライブラリを通じて O/R mapping を実現しています。"Convention over Configuration" という考え方のもと、MVC のモデルにあたるクラスはその名前の複数形にした名前を持つテーブルと暗黙に対応づけられます。例えば

モデル名テーブル名
Userusers
Membermembers
Personpeople
Lifelives

という具合です。これらの例でも分かるように不規則変化についても柔軟に対応しています(内部では正規表現を使って実装されています)。

驚いたことに Rails は octopus (タコ)の複数形が octopi であることだって知っています! ですからあなたの Web アプリケーションでタコについてのテーブルを作成する時も安心です。

いずれにしても、テーブル名を複数形に統一することで得られる利点として:

名前の重複、特に SQL の予約語を避けることができる
ISO や ANSI 標準になっている SQL (例えば SQL-92)でさえ予約語の数が多い上、各 RDBMS で独自に追加された語を避けるためには有効と言えます。
Association に関する整合性がある
'has_many' や 'has_one' といったパターンでテーブル(リレーション)間の関連付けを利用するときに、単複の区別と値の型の区別に整合性があります。

© 2006,2007 Takeshi Abe