개인정보-컴플라이언스-웹애플리케이션 (수정사항 5)

2025. 1. 29. 19:00프로젝트

728x90

슈퍼유저페이지에서는 기관회원이 등록한 시스템을 삭제할수 있어야함 시스템삭제 → 해당 시스템의 자가진단결과도 같이 삭제 되어야합니다.

 

방법 1: ON DELETE CASCADE 설정 추가 (외래 키)

현재 assessment_result 테이블에는 system_id가 systems(id)를 참조하는 외래 키가 존재하지만,

이 외래 키에 ON DELETE CASCADE가 설정되지 않습니다.

 

📌 수정된 assessment_result 테이블 외래 키 설정

ALTER TABLE assessment_result DROP FOREIGN KEY assessment_result_ibfk_1;
ALTER TABLE assessment_result 
ADD CONSTRAINT fk_assessment_result_system
FOREIGN KEY (system_id) REFERENCES systems(id) ON DELETE CASCADE;

systems 테이블에서 특정 system_id가 삭제되면, 연관된 assessment_result 행들도 자동으로 삭제됩니다.

 

방법 2: ON DELETE CASCADE를 추가할 테이블 목록

자가진단과 관련된 모든 연관 데이터가 함께 삭제되도록 다음 테이블의 FOREIGN KEY를 수정해야 합니다.

 

ALTER TABLE self_assessment DROP FOREIGN KEY self_assessment_ibfk_1;
ALTER TABLE self_assessment 
ADD CONSTRAINT fk_self_assessment_system
FOREIGN KEY (system_id) REFERENCES systems(id) ON DELETE CASCADE;

ALTER TABLE quantitative_responses DROP FOREIGN KEY quantitative_responses_ibfk_1;
ALTER TABLE quantitative_responses 
ADD CONSTRAINT fk_quantitative_responses_system
FOREIGN KEY (system_id) REFERENCES systems(id) ON DELETE CASCADE;

ALTER TABLE qualitative_responses DROP FOREIGN KEY qualitative_responses_ibfk_1;
ALTER TABLE qualitative_responses 
ADD CONSTRAINT fk_qualitative_responses_system
FOREIGN KEY (system_id) REFERENCES systems(id) ON DELETE CASCADE;


ALTER TABLE feedback DROP FOREIGN KEY feedback_ibfk_1;
ALTER TABLE feedback 
ADD CONSTRAINT fk_feedback_assessment
FOREIGN KEY (assessment_result_id) REFERENCES assessment_result(id) ON DELETE CASCADE;