Powered by SmartDoc

データベースからオブジェクトへのマッピング

データベース行はオブジェクトにマッピングされます。現在マッピングできるのはGenericRecordクラスのみです。

クラス属性

クラス属性とは、オブジェクトからアクセスすることのできる属性です。クラス属性ではない属性のデータは変更することができません。通常、主キーと外部キーを除くすべての属性をクラス属性に設定します。

原則として主キーと外部キーはクラス属性に設定しないでください。どちらもTapKitが自動的に追跡します。主キー値は新規オブジェクトを追加するときに生成され、外部キーはリレーションシップを通して生成・管理されます。

クラス属性のデータ型

SQLのデータ型は、それぞれRubyのオブジェクトにマッピングされます。

マッピングするオブジェクト
データ型 オブジェクト
文字列 String
整数 Integer
浮動小数点数 Float
日付 TapKit::Date
時刻 TapKit::Time
日付と時刻 TapKit::Timestamp

主キーと外部キーの設計

TapKitは主キー値と外部キー値を自動生成しますが、いくつかの制限があるので注意してください。

フォールティング

リレーションシップを持つオブジェクトをフェッチしても、リレーション先のオブジェクトがすぐにフェッチされることはありません。フェッチ時の負荷を軽減するため、TapKitはリレーション先に「フォールト」という仮のオブジェクトをセットします。

フォールト先のデータにアクセスしたり、フォールトに対してメソッドを実行すると、TapKitはデータベースからリレーション先のデータを自動的に取得します。フォールティングの処理はフレームワークが自動的に行うので、特別なコードは必要はありません。