問題タブ [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 投票する
4 に答える
4193 参照

.net - Linq から SQL への多対多結合テーブル

私は多少経験のある Rails 開発者で、MVC の ASP.NET バージョンを試してみようと思いました。そうすることで、Linq->Sql... も試してみることにしました。

Linq->Sql が結合を処理する方法について少し混乱しています。

私のスキーマの簡単な例は次のとおりです。

書籍:
id
タイトル

カテゴリ:
ID
名前

books_categories :
book_id
カテゴリID

これらのテーブルを .dbml ファイルにドラッグするだけでは、うまくいかないようです。Book クラスの books_categories でプロパティを取得します。期待するのは、繰り返し処理して Category クラスを直接取得できるプロパティです。

今、私は非常に間違っていると感じる何かをしなければなりません

【採用された回答に対して】
「グルーコードを自分で書いてください」という回答をしぶしぶ受け入れました。Linq->Sql の調査を続けた後、(より強力な IMO) Entity Framework を支持して、Linq->Sql が明らかにゆっくりと手放されていることを発見しました。EF ではクエリに LINQ を使用することができ、Ruby の ActiveRecord のような関係を適切に把握できます。

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

java - Hibernate:@ManyToMany関係にあるオブジェクトのセットの推移的な永続性

私は以下をマッピングしようとしています:

Personオブジェクトを保存しようとすると、カテゴリが挿入されますが、重複がテーブルに保存されます。推移的な永続性を維持しながら、各カテゴリがそのテーブル内で一意であることを確認するにはどうすればよいですか?名前の列を一意にしようとしましたが、それは制約エラーをスローすることによってのみ役立ちました。

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

python - djangoで保存されていない多対多の関係を操作するには?

django には、多対多で接続されているモデルがいくつかあります。これらのモデルのインスタンスをメモリに作成し、(ビュー テンプレート内のカスタム メソッド呼び出しを介して) ユーザーに提示し、ユーザーが満足すればデータベースに保存します。

ただし、モデル インスタンスに対して何かを実行しようとすると (レンダリング メソッドを呼び出すなど)、最初にインスタンスを保存する必要があるというエラー メッセージが表示されます。ドキュメントによると、これはモデルが多対多の関係にあるためです。

オブジェクトをユーザーに提示し、データベースを乱雑にすることなくオブジェクトを保存または破棄できるようにするにはどうすればよいですか?

(トランザクション処理をオフにして、プロジェクト全体を通して自分で行うこともできると思いますが、これは潜在的にエラーが発生しやすい手段のように思えます...)

どうも!

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

python - 中間テーブルを介した多対多の関係のDjangoモデルAPI逆引き

レジデントがあり、レジデントが属する SSA のセットを取得できないようです。私は試してみましres.ssa_set.all() .ssas_set.all().ssa_resident_set.all()。それを管理することはできません。別のテーブルを介した逆 m2m ルックアップの構文は何ですか?

編集:「QuerySet as no attribute」エラーが発生します。ええと?

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

nhibernate - NHibernate ManyToMany と熱心な読み込み: SetResultTransformer と SetMaxResult を組み合わせた SetFetchmode の奇妙な結果セット

私は熱心にフェッチしようとする多対多の関係を持っています:

行 20 から 30 を返したいのですが、代わりに 12 から 18 を取得しています。なんで?SetResultTransformer は SetMaxResult の後に実行されるためです。行 20 から始まる 10 行を返しますが、それは区別され (それは単語ですか?)、結果として行 12 から 18 になります。何が起こっているのかは完全に理解していますが、基準を使用した解決策が思い浮かびません...

誰かがそれに対する解決策を持っていますか?

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

.net - エンティティ フレームワークと多対多のクエリが使用できない?

私は EF を試しており、多対多の関係に基づいて多くのフィルタリングを行っています。たとえば、人、場所、および2つをリンクする人の場所テーブルがあります。role と personrole テーブルもあります。

EF は、人、役割、場所のエンティティを提供してくれます。編集: EF はpersonlocationおよび personrole エンティティ タイプを生成しないため、クエリでは使用できません。

特定の場所の特定の役割を持つすべての人を取得するクエリを作成するにはどうすればよいですか?

SQL では、クエリは次のようになります。

私は見ましたが、簡単な解決策を見つけることができないようです。

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

entity-framework - Entity Framework の代理キーとの多対多の関係

Entity Framework は、魔法のように次のテーブル構造を多対多の関係として解釈します。

ただし、結合テーブルに追加のフィールドがある場合は、代わりに 2 つの 1 対多の関係として解釈されます。

結合テーブルが主キーとして代理キーを持つデータベースを使用しています。このため、EF はそれを 2 つの一対多の関係として解釈します。

EF:s の解釈を変更して、モデル内で実際の多対多の関係にすることは可能ですか? デザイナーを使用して行うことはできますか?

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

django - 中間テーブルから変数を取得する

中間テーブルを経由して機関名を取得する必要があります。私のビューは、これ以外のすべての値を取得するか、少なくともテンプレートに表示されていません。誰かが私のビューまたはテンプレートステートメントを修正するのを手伝ってもらえますか?

http://dpaste.com/122204/

ありがとうございました、

5月

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

python - django ビューの python コード

モデル:

  1. ドロップダウン メニューとして HTML テンプレートに送信された病理のリスト

見る:

  1. ユーザーがドロップダウン メニューから病理名を 1 つ選択し、ID を取得します。

見る:

私が立ち往生している場所。以下を記述するには、python/django 構文が必要です。

pathology_id は、テーブル Pathpubcombo (中間の manytomany テーブル) から publication_id を取得する必要があります。publication_id を取得したら、それを使用してパブリケーション テーブルからすべての属性を取得する必要があります。これらの属性は、ユーザーに表示するために別の HTML テンプレートに送信されます。

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

many-to-many - 多対多の関係でジャンクション テーブルを更新する

これは、これに対するフォローアップの質問です。

多対多の関係におけるクエリの例

ジャンクションテーブルの更新について。これを行うには、接合テーブルの WHERE 句で両方のキー値を使用する必要があります。

たとえば、この例では、ユーザーが住所を変更したため、UserAddresses テーブルの AddressId フィールドを更新したいとします。update WHERE 句で既存の UserId とアドレス AddressId の両方を使用する必要があります。

ストアド プロシージャを使用しており、UserId と新しい AddressId をパラメーターとして渡しています。

私はこれを試しました:

あらゆる種類の組み合わせを試しましたが、正しい構文を取得できないようです。

渡された UserId は、もちろん UserAddresses テーブルのものと同じですが、これは私がいくつか試したことにすぎません。WHERE 句が間違っているようです。

何かご意見は?