問題タブ [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.
php - Php Yii のジャンクション テーブルとの関係
プロジェクトのビューの 1 つで、2 つのテーブルのデータを使用するテーブルを表示する必要がありますが、そのうちの 1 つはジャンクション テーブルです。
UserとSkillの 2 つのテーブルがあります。この 2 つの関係は多対多であるため、ジャンクション テーブルStudentSkillsを作成しました。
このジャンクション テーブルには、通常のようにid_userとid_skillだけでなく、特定の id のペアに固有のパーセンテージ値もあります。
ビューの上記のテーブルでは、SkillテーブルのNameと、Certion ユーザーのStudentSkillsジャンクション テーブルのパーセンテージを含む行を表示する必要があります。
これは私の見解です:
そして、これは私の Skill $model での私の検索と関係です:
ページをレンダリングしようとすると、エラーが発生します: Trying to get property of non-object。
私のコードに何か問題があることはわかっています。おそらくリレーションに関係しているのですが、何も見つかりません。
新しいテーブルを作成することなく、誰かがこの問題を解決できますか?
ありがとう
mysql - MySQL多対多:テーブルに挿入してからジャンクションテーブルに挿入しますか?
persons
、places
およびの3 つのテーブルがありperson_place
ます。
各場所が多くの人に「お気に入り」にされるのと同じように、各人は多くのお気に入りの場所を持つことができます。
ユーザーが新しい場所を (ある Web ページで) お気に入りに登録したとします。
person_place 行を追加するには、新しい場所を挿入してその ID を取得する方法を教えてください。
ありがとうございました。
many-to-many - 代理キーの適切な使用?
特定の国に多くの観光スポット (モニュメント、公園、博物館) があるとします。もちろん、特定の観光スポットが多くの州に存在する可能性があります。
論理 ERD モデルに関しては、M:N 関係の間でジャンクション テーブルを使用する必要があります。
しかし、単純に隣接する 2 つのテーブルの PK をジャンクション テーブルの PK として使用するだけで十分でしょうか?
つまり、COUNTRY、SIGHTS、および SIGHT_TYPE テーブルがあり、SIGHTS はジャンクション テーブルです。特定の国に複数の博物館があると仮定すると (つまり、MUSEUM は SIGHT_TYPE です)、これは SIGHTS テーブルの各レコードを一意に識別できないことを意味しますね。
つまり、MUSEUM の SIGHT_TYPE_ID が 2 で、GERMANY の country_id が 22 であると仮定します。複数の美術館の場合、上記が当てはまる場合、これは発生しませんか? 22 2 - ミュージアム A 22 2 - ミュージアム B
したがって、SIGHT_ID などの代理キーの使用は、この場合、一意の識別子として機能するために絶対に不可欠ですか?
つまり、隣接する2つのテーブルのPKを結合テーブルや複合テーブルのPKとして利用するのが一般的ですが、このような場合は例外なのでしょうか?
ありがとうございました
php - ジャンクション テーブルに値を挿入する
データベースに 3 つのテーブルがあります。
多くの旅行には多くの場所が含まれる可能性があるため、上記のように 1 つのジャンクション テーブルがあります。
これで、ユーザーが場所を旅行に挿入すると、場所がplaces
テーブルに追加され、旅行がテーブル内の場所に関連付けられtrips_places_asc
ます。
したがって、次のようなクエリを記述した場合:
次に、ジャンクションまたはアソシエーションテーブルに格納するtrip_id
方法place_id
はtrips_places_asc
? 2 つのクエリを実行する必要がありますか? 助けてください。
注: SO には、 this oneやthis oneのような多くの質問があります。しかし、それらのどれも答えを受け入れていないか、答えすらありません。したがって、重複としてマークしないでください。
mysql - ジャンクション テーブル内のすべてのレコードを参照するか、レコードを参照しない外部キー
これは望ましい機能のように思えますが、外部キーが主キー (複合キー) の一部である場合にどうすればよいかわかりません。
このテーブルは、多対多のリレーションシップ参照User.id
およびAccess.id
ユーザーがアクセスできる参照機能用の単純な結合テーブルです。
したがって、各ユーザーおよび各アクセス レベルに多数のエントリが存在する可能性があります。「スーパーユーザー」のために物事を単純化するために、すべてのページにアクセスできることを意味するNULL
値が必要でした (これは、テーブルaccess
内の行を参照していない値を入力する方法を理解できる唯一の方法です)。access
問題は、MySQL がNULL
主キーの一部として値を許可しないことです。
主キーの問題を回避する方法はNULL
ありますか、または外部キーのすべての行 (または行なし) を参照する別の方法はありますか? これを回避する唯一の方法は、外部キーを無効にするか、テーブル内のすべての access.id に行を追加することです。どちらも望ましくないでしょう。