Backbone.js を使用して (初めて) かなり単純なアプリケーションを作成しています。現在、1 対多の関係を持つ 2 つのエンティティを扱っています。
- プロジェクト: 多くのグループがあります
- グループ:1つのプロジェクトに所属
Backbone 自身の推奨事項から Ligament、Backbone-relational まで、モデル間の関係を表すいくつかの異なる方法を調べました。しかし、最終的には単純な関数呼び出しを使用することにしました。たとえば、私の「プロジェクト」モデル内には、groups() という関数があります。
groups: function() {
return new Collections.Groups(groups.where({project_id: this.get('id')}));
}
Group モデル内では、次のようになります。
project: function() {
return projects.where({id: this.get('project_id')})[0];
}
これにより、次のようなことができます。
var foo = new Project();
var foo_groups = foo.groups();
foo_groups.at(0).get('name');
var bar = new Group();
var bar_project = bar.project();
bar_project.get('name');
私にとって、ここでのトレードオフは、プロジェクトのグループを取得するたびに「groups()」関数を呼び出すのに使用される処理時間と、最新の関係を維持するオーバーヘッド (バックボーンリレーショナルなどを使用する場合) です。
この方法でより多くの関係を構築する際に、今後遭遇する可能性のある落とし穴について、誰かがアドバイスしてくれますか? アプリケーションには最終的に、さまざまな 1 対多および多対多の関係を持つ約 6 つのエンティティが含まれます。