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

SQL Serverでカスケードを使用するのはいつ/なぜですか?

    これまでに見たものの要約:

    • カスケードをまったく嫌う人もいます。

    カスケード削除

    • カスケード削除は、関係のセマンティクスに排他的な"が含まれる可能性がある場合に意味があります "説明。たとえば、OrderLineレコードはその親注文の一部であり、OrderLineが複数の注文間で共有されることはありません。注文が消えた場合は、OrderLineも同様になり、注文のない行が問題になります。
    • カスケード削除の標準的な例は、SomeObjectとSomeObjectItemsです。ここでは、対応するメインレコードがなくても、アイテムレコードが存在することは意味がありません。
    • すべきではありません 履歴を保持する場合、または削除されたビット列のみを1 / trueに設定する「ソフト/論理削除」を使用する場合は、カスケード削除を使用します。

    カスケード更新

    • カスケード更新は、テーブル全体で代理キー(ID /自動インクリメント列)ではなく実際のキーを使用する場合に意味があります。
    • Cascade Updateの標準的な例は、変更可能なユーザー名など、変更可能な外部キーがある場合です。
    • すべきではありません Identity/autoincrement列であるキーでCascadeUpdateを使用します。
    • カスケード更新は、一意の制約と組み合わせて使用​​するのが最適です。

    カスケードを使用する場合

    • 操作をカスケードする前に、ユーザーからさらに強力な確認を取り戻すこともできますが、それはアプリケーションによって異なります。
    • 外部キーの設定を間違えると、カスケードによって問題が発生する可能性があります。しかし、それを正しく行えば大丈夫なはずです。
    • 完全に理解する前にカスケードを使用することは賢明ではありません。ただし、これは便利な機能であるため、時間をかけて理解する価値があります。


    1. PostgreSQLの数値の前にプラス/マイナス記号を付ける

    2. SQL Serverリストテーブル:すべてのテーブルを表示する方法

    3. GTIDを使用してGaleraクラスターからスタンドアロンMySQLサーバーへの非同期レプリケーションを設定する方法

    4. SQLにアップグレードする時期はいつですか?