私はRubyonRails(すぐに明らかになるかもしれません)に不慣れで、次のデータシナリオのモデルを理解しようとしています。私はいくつかの投稿を読み、Googleを詳細に検索しましたが、それでも混乱しています。
列のデータ型が異なることvalue
を除いて、同じ列を持つ5つの異なるテーブルがあります。これらのデータは、さまざまな理由から5つの別々のテーブルにありますが、複数のテーブルに分割されたデータと考えてください。
logbook_strings (user_id, entry_id, field_id, value)
logbook_booleans (user_id, entry_id, field_id, value)
logbook_integers (user_id, entry_id, field_id, value)
logbook_decimals (user_id, entry_id, field_id, value)
logbook_datetimes (user_id, entry_id, field_id, value)
したがって、データは次のようになります。
------------------------------------------------
| user_id | entry_id | field_id | value |
------------------------------------------------
| 1 | alpha1 | date | 2012-11-14 |
| 1 | alpha1 | duration | 1.2 |
| 1 | alpha1 | remarks | Nice job. |
------------------------------------------------
| 1 | alpha2 | date | 2012-11-13 |
| 1 | alpha2 | duration | 2.7 |
| 1 | alpha2 | remarks | Bad job. |
------------------------------------------------
エントリalpha1:
2012-11-14、1.2、いい仕事。
エントリalpha2:
2012-11-13、2.7、悪い仕事。
等
私がこれを行う理由は、無限に柔軟なデータベースを持つことができるようにするためです。field_id
スキーマを更新して幅の広いログブックテーブルにさらに別の列を追加する代わりに、いつでも新しいフィールド/機能を追加してアプリに新しいフィールド/機能を追加できます。
それで、私が疑問に思っているのは、これらの5つのテーブルすべてを参照できる単一のActiveRecordモデルを持つことができる方法はありますか?