問題タブ [many-to-many]

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 に答える
11281 参照

entity-framework - エンティティ フレームワークを使用して、新しく作成されたエンティティのコレクションに既存のエンティティを追加する

エンティティ フレームワークを使用して新しい注文を作成しています。注文には、多対多の関係である連絡先のコレクションが含まれています。注文の作成時に、注文に既存の連絡先への参照を追加したいと考えています。Order と Contact a Entity オブジェクトの両方。

アタッチしようとすると、次の例外がスローされます。

「この関連エンドに関連付けられたソース オブジェクトが追加、削除、または切り離された状態にある場合、アタッチは有効な操作ではありません。NoTracking マージ オプションを使用してロードされたオブジェクトは常に切り離されます。」

おそらく、エンティティ フレームワークが多対多の関係を処理する方法を完全に理解していないか、ステップを見逃している可能性があります。

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

hibernate - hibernate 基準 - n:m 関係のテーブルのクエリ

次のシナリオの休止状態基準を使用してクエリを作成しようとしています。

  • 2 つのエンティティ: インジケータとレポート (それぞれに独自のテーブル、クラスなどがあります)
  • インジケーターはゼロから多数のレポートで使用できます
  • レポートはゼロから多くのインジケーターを使用します
  • したがって、関係を格納する交差テーブルがあります
  • 関係は、クラスとその休止状態のマッピングの両方で定義されます
  • UI では、ユーザーは 1 つまたは複数のレポートを (特に) 選択できます。これらのレポートで使用されるインジケーターについて DB にクエリを実行したいと思います。

私は次のことを試しました:

しかし、私が得るのは奇妙なSQLステートメントだけです

その後、JDBC 例外 (パラメータがありません)

何か案は?ありがとう。

注: Hibernate Criteria を使用して ManyToManyrelationship を照会する方法を調べましたが、受け入れられている解決策は、カスタムの sql-string を作成することです ...

0 投票する
4 に答える
22293 参照

sql-server-2005 - 多対多の関係におけるクエリの例

うわー、このトピックの簡単な説明を見つけるのは難しいです。単純な多対多の関係。

3 つのテーブル、tableA、tableB、およびジャンクション tableA_B。

キーとすべてを使用して関係を設定する方法は知っていますが、INSERT、UPDATE、および DELETE クエリを実行するときが来ると、少し混乱します....

基本的に、私が探しているのは、次の例です。

  1. TableB の ID に基づいて、TableA のすべてのレコードを取得する方法

  2. TableA の ID に基づいて、TableB のすべてのレコードを取得する方法

3 TableA または TableB のいずれかで INSERT を実行し、次にジャンクション テーブルで適切な INSERT を実行して接続を確立する方法..

特定のプロジェクトの解決策を探しているのではなく、適用できる一般的な例をいくつか探しています。ひょっとして、何か横たわっている?

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

django - ManyToMany 関係でオブジェクトを保存する

私はモデルを持っています(単純化された例):

あるグループにタスクを割り当て、そのグループに属するすべての人を後で他の人として追加したい (またはタスクから特定の人を削除したい)。多対多の関係オブジェクトを追加する場合、オブジェクトに ID がないため、明らかに保存は実行されません。そのような状況をどのように処理しますか?人をタスクに追加する直前に保存してから再度保存しようとしましたが、うまくいきませんでした。

よろしく
クリス

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

sql-server - 多対多の関係で冗長なデータが確実に削除されるようにする方法

カスケード削除を使用して参照がなくなったときに、一部のデータが自動削除されるようにしようとしています。スタック オーバーフローに基づく偽のデータベースで説明します。

私はPostテーブルを持っています。各投稿には、ゼロから多数のタグがあります。

したがって、次のようになります。

投稿 <-> PostTags <-> タグ

例えば。

投稿 1 にはタグ「A」、「B」、「C」があり、投稿 2 にはタグ「C」、「D」があります。

今、私がやっていることは、投稿 2 のすべてのタグを削除するとき (例: DELETE FROM PostTags WHERE PostId = 2)、タグ 'D' も削除したいということです。Tag->PostTagsカスケード削除でこれを処理できると思いましたが、もちろん、またはからカスケードダウンした場合のみですPost->PostTags

これを処理する方法がわかりません。

人々がトリガーの使用を提案するのではないかと心配しています:((システムがさらに複雑になります)。

考え?

注: DB は MS Sql2008 です。

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

linq-to-sql - Linq2Sql 多対多関係の問題 & 新しいオブジェクトの挿入

私は単純なlinq 2 sql多対多、データの挿入、操作を実行しようとしています。

多対多を表すストック Northwind モデルを次に示します。

代替テキスト http://www.iaingalloway.com/images/linq-detail.jpg

今私がやろうとしているのは、新しい注文を挿入することです。製品が存在しない場合は、同じトランザクション内で同時に挿入します。私が得ているエラーは次のとおりです。

だから、これは私の(疑似)コードです:

注文を保存しようとする前に、まず製品を保存する必要があると思いますか? 私は困惑している :(

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

nhibernate - 多対多参照テーブルからアイテムを削除していますか?

「グループ」と「顧客」の 2 つのテーブルと、もちろん「グループ」と「顧客」の 2 つのエンティティがあります。そして、「CustomerGroupMember」テーブルの両方を参照している別のテーブルがあります。

多対多のマッピングには CustomerGroupMember テーブルを使用します。

Customer.hbm.xml

Group.hbm.xml

「CustomerGroupMember」テーブルのエンティティとマッピングを作成していません。

私の質問は、CustomerGroupMember テーブルから CustomerGroupMember を削除するにはどうすればよいですか? CustomerGroupMember を削除するには、CustomerGroupMember のエンティティを作成する必要がありますか?それとも別の方法がありますか?

どうもありがとうございました。

0 投票する
9 に答える
8324 参照

sql - 基本的な多対多の SQL 選択クエリ

これは簡単なはずですが、私を回避しています。アカウントとアカウント グループの間に多対多の関係があります。アカウントは 0 個以上のグループに属することができるため、標準の結合テーブルを使用しています。

MS Access、FWIW を使用しています。また、これは低帯域幅の状況のた​​めのものであるため、コードの最適化はシンプルさ/読みやすさほど重要ではありません。

私はプレゼンテーション レイヤーとして php を使用しているので、Access からの最低限の結果で問題ありません。

マルチリザルトの状況をどうするかというと、実際に構築しようとしているものが 2 つあります。最初の例では、次のように 1 つの列にすべてのグループが一覧表示されます。

2 番目はマスター詳細リストです。

マスター詳細については、データベースから大きな結果セットを取得し、必要に応じてそれを php でマンジするだけの計画でした。いずれにせよ、php には重要な後処理が必要になるため、3 つの個別のクエリを実行して、そこで結合を行う必要があるかもしれません。(私はその言語に慣れているので。)

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

ruby-on-rails - レールで has_and_belongs_to_many 関係を削除しようとしています

昨日、最初のRailsプロジェクトを開始しました。私のアプリケーションには 2 つの多対多 (has_and_belongs_to_many) の関係がありました。モデルのゲームとチームの間に 1 つ、モデルの統計と結果の間にもう 1 つありました。これは、移行を使用して結合テーブルを自分で作成することで、すべて正常に機能していました。

次に、統計と結果の関係を多対多にするのではなく、何対多にするかを決定したので、次の移行を実行し、関係を has_many と belongs_to に切り替えました。

次に、これを行うと、たとえば Result.find(0).stat を呼び出すときに NoMethodError が発生するため、新しい 1 対多の関係が機能しないだけでなく、ゲームやチームとの以前の作業中の多対多の関係が機能しなくなります。現在も壊れています。以前は Game.fine(0).teams を呼び出して結果を見つけて表示することができましたが、今では NoMethodError も取得します。何かご意見は?私はかなり迷っており、どんな助けも素晴らしいでしょう。

0 投票する
8 に答える
2423 参照

sql - 単一の SQL テーブル内のレコード間の多対多の関係を表す最良の方法は何ですか?

次のようなSQLテーブルがあります。

更新: 元のデータ (州、都市、学校) の既存の階層的な性質が、項目間に単純な関係が必要であるという事実を覆い隠しているため、サンプル テーブルを変更しています。

これらのエンティティ間の双方向の関係を定義して、1 つのエンティティを表示しているユーザーが関連するすべてのエンティティのリストを表示できるようにしたいと考えています。

関係は、エンド ユーザーによって定義されます。

これらの関係をデータベースで表現し、その後クエリを実行して更新する最良の方法は何ですか?

見たところ一通り…

私の直感では、リレーションシップ テーブルは次のようになります。

その場合、指定された entity_id が 4 の場合、関連するすべてのレコード (1 と 5) を取得するにはどうすればよいでしょうか?

同様に、entity_id = 1 のクエリは、2、3、4、および 5 を返す必要があります。

お時間をいただきありがとうございます。質問を明確にすることができるかどうかお知らせください。