配置の中核として多形ツリーテーブルを使用するコンテンツ管理システムアプリケーションがあります。ツリーが非常に大きくなると、かなりの数の異なるモジュール(約25)があるため、:include =>:instanceを実行するだけではマスタードがカットされないという問題が発生しました。インスタンスは、ポリモーフィックな関係の名前です。
面白い部分は、ほとんどの場合、これらのアイテムの大規模なリストが必要な場合、本当に必要なのは関連するテーブルからの名前だけであり(たとえば、インデックスバーの目的で)、残りはすべて中央のテーブルにあります。そのため、中央テーブルの名前に何らかの列キャッシュを実装する必要があると思いました。(railsがすでに行っているカウンターキャッシュのように)。
これを管理するプラグインがすでに存在するかどうか疑問に思っていましたか?
そうでない場合は、中央テーブルに「name」列を追加します。すべてのポリモーフィックモデルはスーパークラスを継承するため、アイテムが作成または更新されるたびに名前を中央テーブルにプッシュするコールバックを追加するだけです。それなら、そもそも大規模な移行を行ってデータを入力しますか?
そのデザインに何か欠陥はありますか?
より柔軟になると思いますが、列は、必要に応じて後で他のものを格納できる、ある種のシリアル化されたキャッシュである可能性がありますか?ああ!:D