問題タブ [junction-table]

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

mysql - ジャンクション テーブルからの最新レコードのみを結合するテーブルからのすべてのデータのクエリ

私はこれに似たデータベース構造で作業しています: http://dev.mysql.com/doc/employee/en/sakila-structure.html

表:従業員

各従業員に関する情報を含むテーブル。

表:部門

会社の部門に関する情報を含むテーブル。

ジャンクション テーブル: emp_dept

主キー: [ emp_no , from_date ]

従業員が以前に働いていた、または現在働いている部門を追跡するためのテーブル。

期待される表:

各従業員の最新レコードのみをジャンクション テーブル(emp_dept) から従業員テーブルに結合し、以下のようなテーブルを取得するにはどうすればよいですか?

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

database - エンティティ関係モデルとリレーショナル モデルの違いは何ですか?

次の2つの違いしか見つけることができませんでした。

  1. ER モデルの関係は明示的に定義されますが、リレーショナル モデルでは暗黙的です。
  2. リレーショナル モデルでは、多対多の関係を実装する 2 つの外部キーを保持するために、中間テーブル (「ジャンクション テーブル」と呼ばれることが多い) が必要です。

ER図があるのに、なぜリレーショナルモデルを使用するのでしょうか?

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

mysql - ジャンクション テーブルで Where 句が期待どおりに機能しませんか?

他の 2 つのテーブル間に多対多の関係を作成するジャンクション テーブルがあります。これが図です。

ここに画像の説明を入力

これが私の基本SQLクエリです。

その結果の一例です。

これらの結果は基本的に私が探しているものですが、正しく機能しない URL をグループ化しようとしました。WHERE句を 1 つ含めると、クエリも適切に機能します。

しかし、条件にAND演算子を追加するとWHERE、これが期待されます。

しかし、私は得る:

で条件を追加しようとしましONJOINが、結果は同じでした。私は何を間違っていますか?

編集 :

このクエリの目的は、関連付けられた URL のリストとともに 1 つ以上のタグを取得することです。ANDこれらの特定のタグのみを取得するには、複数の演算子を使用できる必要があります。質問 (URL) と複数のタグが添付されたスタック オーバーフローのように機能する必要があります。

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

database - Access データベースの設計 - 2 つの別個の (および関連する) フィールドを正規化する

会社で行っている設計作業の情報を保存するデータベースを作成しました。メインテーブルには現在、多数の「オプション」フィールドがあるため、多くの Null フィールドがあります....私が理解しているように、正規化の最有力候補です!

私の問題は、構造の理解から生じます。私の問題を説明するために最善を尽くします:

メイン テーブルには、エントリ (私の PK) と、いくつかのグループ化されたオプション (AY/N とメモ) があります。テキストはオプションですが、関連する Y/N が「はい」に設定されている場合のみです。簡単な例は次のとおりです (Excel で簡単なモックアップを作成しました)。

スクリーンショット1

これら以外にも多くのオプションがあることに注意してください (さらに多くの null があります)。これらを 2 つの新しいテーブルに正規化したいのですが、その構造は私のスキル レベルを超えています。理論的には、次のようになります。

スクリーンショット2

これにより、Y/N とテキストが分離され、元のオプション番号を介して 2 つが関連付けられ、すべての null が削除されます。

しかし、構造的には、すべてを設計する方法がわかりません。どこかにジャンクションテーブルが必要だと思いますが、「注文と製品」の標準的なチュートリアルの例は、私がやろうとしていることにうまく適合しません (または、少なくとも、それを見ることができません)。

追加の問題として、対応する「OptionA」に「Yes」が存在する場合にのみ、「OptionB」のレコードを受け入れる必要があります。元のテーブルの検証ルールを使用してこれを設定できましたが、フィールドが分​​割されている場合に同じ方法を使用できるかどうかはわかりません。

2番目の2つのテーブルのキーを設定する方法についても途方に暮れています-「エントリ」と「オプション」の両方が重複できる必要がありますが、これら2つのフィールドの一意の組み合わせの重複を停止する必要があります( 「エントリ 1|オプション 1」のレコードは 1 つだけである必要があります)

それは長文でしたが、それが理にかなっていることを願っています...さらに明確にすることができれば幸いです。

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

postgresql - postgreSQLでWHERE句を使用して3つのテーブルをJOINする最も効率的な方法は何ですか

私はpostgreSQL 9.3で作業しています。

私の質問は少し主観的だと言いたいのですが、関連する質問や記事は見つかりませんでした...

次のように3つのテーブルがあります。

アーティスト:

ジャンル:

ジャンクション テーブルの artistGenres:

すべてのアーティストをジャンル名で取得したい。現時点では、次のようにします。

もっと効率的な方法はないか考え中です。

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

mysql - 2 つのジャンクション テーブルからデータをプルするクエリ

漫画のデータベースを作成しています。現在、3 つのメイン テーブル (comics、publishers、people) と 3 つのジャンクション テーブル (person2comic、publisher2comic、person2publisher) があります。タイトル、号数、発行者、人物を自由に組み合わせて検索できる検索フォームが欲しい。ジャンクション テーブルを 1 つだけ参照する場合は、検索対象に応じて、次のバリエーションを使用します。

誰かがタイトル、発行者、人物で検索するとしたら、ジャンクション テーブルを 2 つ使用する必要があるため、ステートメントの設定方法がわかりません。ネストされたクエリの状況でしょうか、それとも何か他のものでしょうか?

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

c# - EF Code First Migration はジャンクション テーブル名の切り替えを要求する

Foo のテーブルと Bar のテーブルを含む EF Code First モデルがあります。これは多対多の関係であるため、EF は FooBars というジャンクション テーブルを生成しました。

大丈夫だ。ここで、モデルにいくつかの変更を加え、移行を追加しました。Foo エンティティには、いくつかの追加の string および int プロパティが含まれるようになりましたが、関係などに変更はありません。ただし、何らかの理由で、EF はジャンクション テーブルを BarFoos と呼ぶ必要があると主張し、元の FooBars テーブルを削除したいと考えています。

もちろん、すべてのレコードを FooBars から BarFoos にコピーすることもできますが、それは非常に厄介であり、モデルに変更を加えてこの特定の移行を再生成するときに、引き続き行う必要があります。なぜ EF はジャンクション テーブルが突然逆になるべきだと主張するのですか? これを回避するために何かできますか?