問題タブ [polymorphic-associations]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
940 参照

ruby-on-rails - ポリモーフィズムで has_many をモデル化する方法は?

モデル化の方法がよくわからない状況に遭遇しました。

編集: 以下のコードは現在、実用的なソリューションを表しています。ただし、見栄えの良いソリューションにはまだ興味があります。

User クラスがあり、ユーザーが多くのサービスを持っているとします。ただし、これらのサービスは aMailServiceと aBackupServiceのようにかなり異なるため、単一のテーブル継承では機能しません。代わりに、抽象基本クラスと一緒にポリモーフィックな関連付けを使用することを考えています。

新しいサービスを作成するときに Service インスタンスを暗黙的に作成することに注意してください。

それで、これが最善の解決策ですか?それとも良いものですか?この種の問題をどのように解決しましたか?

0 投票する
2 に答える
6334 参照

sql - サブクラスでのjpa結合クエリ

私はJPA(休止状態)で次の関係を持っています。

オブジェクトXには、YとZの2つのサブクラスがあります。

オブジェクトAはオブジェクトXに対してmanyToOne関係を持っています(これは一方的な関係であるため、オブジェクトXはオブジェクトAを見ることができません)。

ここで、オブジェクトAの列の最大値を取得したいのですが、関係が特定のサブタイプ、つまり...Yである場合のみです。

つまり、これは、Yと関係があるAのすべてのインスタンスにわたって、オブジェクトAのcolumn1の最大値を取得することと同じです。これは可能ですか?クエリの仕方が少し迷っています。

私は次のようなことを考えていました:

しかし、それはXのサブクラスを考慮に入れていません...だから私は少し迷っています。

どんな助けでも大歓迎です。

0 投票する
1 に答える
489 参照

ruby-on-rails - 同じ Rails モデルに 2 回参加します。たとえば、人々はメンバーシップを通じて has_many clubs を行い、人々は委員会を通じて has_many clubs を使用します。

モデル: * 人 * クラブ

関係 * メンバーシップ * 委員会

人々はクラブに参加できるべきである(メンバーシップ) 人々はクラブの理事会に参加できるべきである(委員会)

私のアプリケーションでは、これらには非常に異なる機能が含まれているため、フラグを使用して (is_board_member) などを設定することは避けたいと思います。

私は書きたいと思っています:

人々 has_many :clubs :through => :membership # :as => :member? :foreign_key => :member_id? has_many :clubs :through => :committee # as (上記)

しかし、これをつなぎ合わせる方法がよくわかりません

0 投票する
1 に答える
174 参照

ruby-on-rails - 特定のオブジェクトのタグ数を追跡する方法に関する提案

Railsの特定のオブジェクトに関連付けられているタグの数を追跡する方法についての提案を探しています。私はacts_as_taggable_onを使用していますが、正常に動作しています。私ができるようにしたいのは、タグのないすべてのオブジェクトを、できればスコープ、つまりObject.untagged.allを介して検索することです。

私の最初の考えは、after_saveコールバックを使用して、モデルの「taggings_count」という属性を更新することでした。

残念ながら、これは私を無限ループに陥らせるという明らかなことをします。メインオブジェクトが保存されるまでtag_listは更新されないため、after_saveコールバックを使用する必要があります。

私は自分のタグ付けシステムを展開しようとしているので、何か提案をいただければ幸いです。

よろしく

ロビン

0 投票する
1 に答える
182 参照

ruby-on-rails - Rails の同じ 2 つのテーブルに対する 2 つの異なるタイプの関連付け

ユーザーとテーマの 2 つのモデルがあり、現在、themes_users テーブルの HABTM アソシエーションに参加しています。基本的に、ユーザーが新しいテーマを作成すると、他のユーザーが自分で使用するために選択できるようになります。

ただし、テーマを編集できるのは、テーマの元の作成者のみです。したがって、その関係を処理するには、テーマの created_by_id フィールドのような別の種類の関連付けが必要です。

このように、ユーザー モデルは 2 つの異なるロールとして機能します。テーマの実装者および/またはテーマの所有者になることができます。実装者の関係は、themes_users 結合テーブルによって処理されます。問題は次のとおりです。この二次的な関連付けを処理する正しい方法は何ですか? ユーザーをポリモーフィックにしてから、created_by_id が「所有者」を参照するようにする必要がありますか? それとももっと簡単なものがありますか?

助けてくれてどうもありがとう!

0 投票する
2 に答える
3159 参照

ruby-on-rails - ポリモーフィックな関連付けを回避する方法

Facebook などのソーシャル ネットワークで見られるようなニュース フィードを実装する必要があるとします。現在、画像、コメント、フレンドシップ、グループメンバーシップなど、あらゆる種類のポリモーフィックな関連付けを持つニュース クラスを使用しています。オブジェクトが作成されるたびに、ニュースも作成されます。AR(ActiveRecords) では正常に動作していますが、DM(DataMapper) または Sequel に切り替えると問題が発生します。どちらもポリモーフィック アソシエーションをネイティブにサポートしておらず、その使用を推奨していないためです。

1 つの回避策は、多くの UNION を持つ大きな SQL 句を使用して、ニュースと見なされるすべての異なるテーブルをマージすることです。しかし、これにはいくつかの欠点があり、特にパフォーマンスがひどいものになります。

それで、ニュースにメタデータを追加する可能性があるなど、優れたパフォーマンスと他の欠点なしで、ポリモーフィックな関連付けなしで解決するにはどうすればよいでしょうか?

0 投票する
10 に答える
7372 参照

sql - 一般的なデータベース テーブルの設計

次のシナリオでテーブルを設計する最良の方法を見つけようとしています:

私のシステムにはいくつかの領域 (ドキュメント、プロジェクト、グループ、およびクライアント) があり、それぞれにログに記録されたコメントを含めることができます。

私の質問は、次のようなテーブルを 1 つ持つべきかということです。

ID の 1 つだけにデータがあり、残りは NULL になる場合、または別の CommentType テーブルを用意して、コメント テーブルを次のようにする必要があります。

私の考えでは、インデックス作成の観点からは、オプション 2 の方が効率的です。これは正しいです?

0 投票する
2 に答える
926 参照

ruby-on-rails - Railsの多形関連で子供がいない、または子供がいる親を探す

RoRプロジェクトの写真の2つのモデルがあります

子供の写真だけですべての車を見つけるにはどうすればよいですか?

0 投票する
3 に答える
2145 参照

mysql - MySQL: 2 つの n:1 関係ですが、同時に両方ではありません

タイトルがわかりずらくてすみません。

次のようなデータ モデルが必要です。 代替テキスト

ご覧のとおり、セットはユーザーまたは学校の両方に属することができます。私の問題: ユーザーまたは学校のいずれかに属することのみを許可する必要があります。しかし、両方を同時に行うことは決してありません。

どうすればこの問題を解決できますか?

0 投票する
1 に答える
4926 参照

ruby-on-rails - ネストされた関連付けを持つポリモーフィックパスの使用

私は次のようなポリモーフィックな関連付けを持っています:

親アイテムから新しい行を作成する簡単な方法が欲しいのですが。したがって、Workオブジェクトのビューを編集していて、新しいLineオブジェクトを作成するリンクが必要な場合があります。通常、私はこれを行います:

そして、ヘルパーはこのためのルートを実行します。ただし、これには、ラインがコントローラー内でどちらの親に属しているかを確認する必要があり、ポリモーフィズムの目的が無効になります(その場合は、2つの参照を使用できます)。だから、私の質問は、パスを通常のパスヘルパーのように多形的に機能させるにはどうすればよいですか?