0

以前は対処する必要がなかった興味深い問題があります。私はそれに近づくための最良の方法を探しています。

学生を仮想マシンにリンクする管理サイトを作成しています。学生は複数のコースにサインアップでき、受講するコースの組み合わせに応じて 1 つの virtual_machine_id を持ちます。管理者は、新しいコースを作成し、(個別に) コースの組み合わせを特定の virtual_machine_id にマップできます。

1) 可変要素の組み合わせを特定の ID に関連付ける最良の方法は何ですか? 要素が固定されている場合は、各要素の列と virtual_machine_id の 1 つの列を含むテーブルを作成します。しかし、これらの要素は (管理者がコースを追加または削除すると) 変更される可能性があるため、組み合わせと関連付けられた ID を簡単に照会できるようにそれらをマッピングするにはどうすればよいでしょうか?

2) 現在、has_many :through 関連付けと、student_id と course_id を持つ 3 番目のテーブルを使用して、学生をコースにマップしています。コースの組み合わせを収集し、組み合わせ全体に単一の virtual_machine_id を割り当てる必要がある場合、これは正しい方法ですか (受講するコースの数によっては複数の virtual_machine を持つ可能性があるため、学生に ID を割り当てることはできません)。

私は解決策として EAV (entity-attribute-value) モデルを検討していましたが、一般的なコンセンサスは、いくつかの ActiveRecord 機能が失われるため、悪い考えであると思われます。

4

1 に答える 1

0

ActiveRecord ORMでEAVを使用する場合は、実行時に新しい属性を作成できるhydra_attribute gemを参照し、それらによって検索/並べ替え/グループ化することができます。

現在、バージョン0.3.2は属性セットをサポートしていませんが、次のリリースでこの機能を追加し、各生徒レコードに一意の属性コレクションを割り当てることができるようになります。

于 2012-08-01T09:13:12.357 に答える