sql >> データベース >  >> RDS >> Mysql

MYSQLコンプレックスユニオン

    目的の階層がプログラム->テーマ->ストランド->年->ユニット->learning_eventの場合、これを反映するようにテーブル構造を調整する必要があります。特に、テーマはテーマとプログラムの間に外部キーの関係を持っている必要があり、1年間に追加のレベルが必要です。テーマとプログラムの間に外部キーがあると、クロスジョインの必要がなくなります。クロス結合にはあなたを噛む習慣があり、通常は避ける必要があります。

    このdbフィドル を見ると 私がこれらの変更を行ったことがわかります。予約語の使用を避けるために、年レベルのstrandyearと呼びましたが、意図は明確である必要があります。これで、結合は(左結合ではなく)内部結合になり、ツリーの上位レベルから説明値を取得します。最下位レベル(learning_events)には、strand、year、unitに一致する値のみが自動的に含まれます。各レベルが上のレベルへの外部キーを持っているという単純な手段を通じて、構造自体がそれを保証していること。

    外部キーは効果的にリンクを連鎖させることに注意してください。たとえば、learning_eventとstrandの間に特定の外部キーは必要ありません。これは、チェーン内に介在するキーが関係を保証するためです。



    1. Varchar2とcharの主な違いは何ですか

    2. DATETIME列のランダム値

    3. over句に正しい構文を使用するMySql

    4. mysql2 gemが原因で、バンドル更新を実行できません