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

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

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

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

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

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

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

私はこれを試しました:

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

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

何かご意見は?

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

mysql - phpとmysqlに「文字列」または「整数」として友達として保存する必要がありますか?

私はジレンマに陥っています。どちらが優れているかわかりません。(私はphpとmysqlを使用しています)

私がソーシャルコミュニティのウェブサイトを開発しているとしましょう。ユーザーは、好きなだけ友達を追加できます。私のデータベースには、ユーザーの友達を含むユーザーの詳細を格納するユーザーテーブルがあります。ユーザーの友達を次の場所に保存する必要があります:

文字列=>john;bryan; sam; paul; ...;

また

整数=>1;21; 50; 1779; 30; ...;

文字列は、ユーザー名を保存することを意味します。整数は、ユーザーIDを格納することを意味します。

どちらがいいですか?

文字列の場合、それは非常に大きな文字列になります(ユーザーに400人の友達がいて、一部のユーザー名が非常に長いと想像してください)

idの場合、ユーザープロファイルページに友達を一覧表示するにはどうすればよいですか?1つの長い文字列(セミコロンで区切られている)でIDのリストを取得し、explode関数を使用して配列にします。次に、ループを使用して表示しますか?面倒じゃないですか?他に方法はありますか?はいの場合、サンプルコードをいくつか表示してください。

または、通常、「友達」リストをユーザーテーブルに保存するにはどうすればよいでしょうか。

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

subsonic - 亜音速多対多

サブソニックユーザーの場合、

Subsonic で多対多の関係を処理する方法に関する情報源はありますか? データベースで正しいリレーションを定義したにもかかわらず、生成されたコードで" //no ManyToMany tables defined (0) " を取得し続けます。

助けはありますか?

0 投票する
5 に答える
3831 参照

entity-framework - Entity Framework: 条件付き外部キー

データベースに次のスキーマがあります。

  • BillingReferences (ReferencingType tinyint , ReferencingId tinyint , ReferencedType tinyint , ReferencedId tinyint , IsActive bit ) - すべてのフィールド (IsActive を除く) は一意のインデックスの一部です。
  • BillingType (BillingTypeId tinyint , Name varchar(50) )

ReferencedType および ReferencedType は、BillingTypes の外部キーです。BillingTypes には次の行が含まれます。

BillingTypeId | 名前

1 | ラベル

2 | 国

3 | 支払いプロバイダー

4 | 支払いオプション

5 | 銀行

ReferecingId および ReferencedId は、次のいずれかのエンティティの Id を表します (参照/参照タイプによって異なります)。

  • 銀行(BankId tinyint , Name varchar(50) )
  • (CountryId tinyint , Name varchar(50) )
  • ラベル(LabelId tinyint、名前varchar(50) )
  • PaymentProviders (PaymentProviderId tinyint、名前varchar(50) )
  • PaymentOptions (PaymentOptionId tinyint、名前varchar(50) )

将来、各エンティティにはさらにいくつかの異なる列が追加される予定ですが、今のところは単純化のためのスキーマです。

すべてのエンティティ (国を除く) と国の間に (1- ) の接続があります。ラベルには、 Banks、PaymentProviders、および PaymentOptions への (1-) の接続があります。また、PaymentProviders には PaymentProviders への (1-*) の接続があります。

たとえば、BankId 201 の銀行を CountryId 3003 の国に接続する場合、BillingReferences に次のようなレコードが作成されます。

拡張性を考慮して、接続の種類ごとに接続/参照テーブルを作成しませんでした。別のエンティティを追加する場合は、そのテーブルを追加し、BillingReferences と BillingType にレコードを追加するだけです。

問題は、BillingReferences と各エンティティの間で条件付き外部キーを構成できず、EntityFramework で構成/マップできないように見えることです...

このタイプの実装を使用するチュートリアルや例は見つかりませんでした。接続ごとに参照テーブルを作成する必要がありますか、または EntityFramework でこれを構成する方法はありますか?

助けてくれてありがとう :)

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

sql - タグ/キーワード マッチングの最適なソリューションは何ですか?

データベース内の異なるレコード間のキーワード マッチングの最適なソリューションを探しています。これは古典的な問題です。同様の質問を見つけましたが、具体的なものはありません。

私は全文検索、結合とサブクエリ、一時テーブルなどでそれを行ってきました...だから、皆さんがそのような一般的な問題をどのように解決しているかを本当に知りたいです.

では、2 つのテーブルがあるとします。ProductsそしてKeywords、それらはProducts_Keywords古典的な多対多の関係で 3 番目のテーブルにリンクされます。

ページに1 つのProductレコードを表示し、上位n 個の関連製品を表示したい場合、最適なオプションはどれですか?

レコードが複数のキーワードを共有している可能性があることを考慮に入れる必要があり、この事実が上位の関連製品の順序を決定するはずです。

私は他のアイデアも受け入れていますが、パフォーマンス上の理由から、T-SQL が望ましいソリューションです。

0 投票する
5 に答える
192 参照

mysql - MySQL で PK を複製する

少し前に、このサイトで、多対多 (私の場合は facebook っぽい「友達になる」システム) を使用する唯一の方法は、次のようなことをすることだと言われました。

これにより、多数の同一の主キーが残されることはありません (これは不可能だと思いますか?) また、uid を PK として設定できない場合、どうすればテーブルをすばやく検索できますか? PKでこれを回避する方法が必要です。

ありがとう!

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

nhibernate - Fluent NHibernate オブジェクト化された関係マッピング

私のシナリオ、オブジェクト化された関係を持つ多対多のマップをサポートするように NHibernate を構成する方法についての回答を探しています。

他の Person:s との関係を持つ Person:s のコレクションがあります。各関係には、関係のタイプを指定する属性があります。RDB では、これは、テーブルで指定された関係タイプを持つ多対多テーブルを使用することによって行われます。モデルは、「親友」や「大敵」などのより多くのタイプを許可することで拡張できます。

Person オブジェクトをクエリして、関連するすべての Person をタイプ別に返すことができるようにしたいと考えています

また

別の (拡張性の低い) 解決策は、クラスで静的に他の関係が存在することを指定することです。

現在、「Person」テーブルと「PersonPerson」テーブルを備えたレガシー データベースを使用する必要があります。「PersonPerson」テーブルは、関係タイプを整数として保持します。

以下のような構文を使用してこれを実行しようとしましたが、これまでのところ成功していません...

これを(流暢な)NHibernateでマッピングするためのヒント/解決策はありますか?

ブラジル

/イェンス

0 投票する
5 に答える
1866 参照

sql - タグのデータベース スキーマ (例: 各投稿にはいくつかのオプションのタグがあります)

私は SO、Wordpress などのサイトを持っており、そこで投稿を行い、それに対して (オプションで) タグを付けることができます。

これを処理するための一般的なデータベース スキーマは何ですか? 3 つのテーブルを持つ多<->多構造であると想定しています。

誰にもアイデアはありますか?

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

c# - エンティティ フレームワークに多対多の関係オブジェクトを保存する

エンティティ フレームワークで多対多の関係の一部を形成するエンティティを保存しようとしていますが、次のエラーが表示されます: Unable to update the EntitySet 'zRM_OP_defaultloccvgsMapping' because it has a DefiningQuery and no element exist in the element to現在の運用をサポートします。

私のgoogle-fuはこれに弱いですが、デザイナーコードを編集し、手動で挿入を行うためにストアドプロシージャを接続する必要があるかもしれないことを理解しています.

私のテーブル構造は次のようになります。

場所:LOCID、何とか..

カバレッジ:CV​​GID、何とか..

lockvgs: LOCID、CVGID (キーなし)

ヘルプ!