3

ジェムのacts-as-taggable-onを使用したブログ投稿のタグ付けを含むレールアプリがあります。私のアイデアは、この gem のタグ付けメカニズムを適度なリンクのアプローチを使用して拡張することです。このアプローチでは、タグの所有者として少数のユーザーを作成することを選択でき、ユーザーは 1 つのタグを別のタグに親/子としてリンクすることを選択できます。

Education現在、システムには、 、 などの独立したタグがChild Educationあります。Distance Education

のタグ所有者は、 を第 1 レベルの子としてEducation選択しChild EducationDistance Education それらをリンクすることができます。この関係は、分類学者 (タグ管理者) によって承認されるまで表示されません。

同様に、エンド ユーザーはDistance Educationタグを子にすることを提案することもできEducation、この要求はタグ管理者に表示されます。彼の承認に基づいて関係が確立されます。

これらは、上記の要件に関して私が持っているいくつかの質問です:-

  1. この階層システムをサポートするために、gem を拡張することをお勧めしますか、それともゼロから作成した独立したタグ付けモデルを使用する必要がありますか?

  2. gem によって提供されるスキーマを使用する場合、そのような要件を設計するにはどのようなモデルを使用する必要がありますか。具体的には、タグ ID とタグ名を含む parent_id 列を持つ単一のテーブルを使用する必要がありますか? または、多対多の関連付け (tag_id、parent_tag_id (外部キーとして)) を持つ別のテーブルでそれらの関係を維持する必要があります。

  3. 私はデータ構造も初めてなので、タグ ファミリ間を効率的にトラバースするには、アルゴリズムの選択に関する最初の入力が必要です。リンクされたリストを使用することは私の選択肢の 1 つでしたが、Rails の設定よりも慣例のマントラを考慮すると、これをどのように進めればよいか本当にわかりません。

4

1 に答える 1