たとえば、以下のONDELETECASCADEを使用するのが良いかどうかを知りたいです。これは、ONDELETECASCADEを使用して行を削除する場合の一般的な考え方です。
モジュールテーブル:
ModuleId (PK) ModuleNo ModuleName
11 CHI2333 ICT
Course_Moduleテーブル:
CourseId ModuleId (FK)
3 11
セッションテーブル(試験):
SessionId SessionName ModuleId (FK)
5 ASDEE 11
上記の例では、Module
テーブルから行を削除すると、同じModuleIdを含む他の2つのテーブルの行が削除されます。テーブルでは、Course_Module
どのコースにどのモジュールが含まれているかを判別し、Session
テーブルでは、試験の詳細を保持し、削除されたModuleIdを含む行(試験)を削除します。
上記の例でこれを実行しても大丈夫ですか?私の一般的な質問は、親テーブルの行が削除または削除されたときにON DELETE CASCADEを使用して外部キー行を削除するのが賢明で通常の方法ですか?