第1項. Property Bagを使用する

Property Bagの使用方法を説明する。Property Bagでは、1つのテーブルにオブジェクト、 属性、値のパターンを使用して、すべてのデータを保存する。

 1. Property Bagのメリット

  • ● 使い方が簡単で、属性の指定が必要ない。
  • ● データベースのマイグレーションが不要
  • ● 属性の追加、削除が、データベースのスキーマを変更することなく行える。

 2. Property Bagのデメリット

各属性にindexが張られるため、一部のアプリケーションでは、Fixed Schemaを使用するより、データベースのサイズが大幅に上回る可能性があります。

 3. Property Bagモデルを使用する。

Property Bagモデルの使用方法を説明する。Property Bagモデルはデフォルトで使用されるモデルです。使用するには、”rhodes model”もしくは、”rhogen model”コマンドを使用します。

 

$ rhodes model Roster username,company_name,phone_number,address
もしくは
$ rhogen model Roster username,company_name,phone_number,address

 

上のコマンドを実行すると/appフォルダの中に、Rosterフォルダが作成され、いくつかのファイルが作成されます。作成された、/app/Roster/roster.rbファイルがモデルファイルになります。
作成されたモデルファイルの中は、以下のようになっています。

 

/app/Roster/roster.rb


class Roster
  include Rhom::PropertyBag

  # Uncomment the following line to enable sync with Roster.
  # enable :sync

  #add model specifc code here
end

 

モデルファイルには、データベースの設定項目について以下に示します。

 

● set(:partition, type) ・データをこのモデルのためにどのように分割されるかを定義します。typeには分割するときの名前を指定します。
● property(name, :blob, option) ・モデルにBLOB属性を追加するときに設定します。:blobを第2引数に渡すことで、nameに指定したカラムに対してBLOB属性が設定されます。optionに:overqriteを指定することで、サーバから新しいコピーを取得し、クライアントのコピーを上書きします。Rhodesから送られてきた画像を変更するときなどに便利な機能です。
● property(name, type) ・独自のプロパティを定義することができます。

例: property :rosp_property, “hello”

 

 4. データベースのマイグレーションについて

Property Bagのデータベースはすべての属性を動的に扱っているため、データベースのマイグレーションは必要ありません。もし、アップグレードの際に、ローカルのデータベースを削除したい場合は、rhoconfig.txtのapp_db_versionの値を変更することで削除することができます。

システム工房エムのサイトへのリンク

住所〒690-0017 島根県松江市西津田3-2-3 TEL.0852-23-8590 FAX.0852-23-8591
Copyright 2008-2010 System Maker M,All right reserved