이 상황에서 외래 키를 설정해야합니까? 나는 mysql에서 특히 데이터베이스 디자인이 약하다. 만약 내가 그들을 위해 외래 키를 설정하고 싶다면 내가 그들을 어떻게 설정해야 하는가? 사람들이 삭제 한 경우 ... people_id에 대한 모든 참조가 함께 삭제됩니다. 테이블이 너무 많을 때 설정할 수 있습니까? 응답MySQL 외래 키 : 내가 설정해야합니까?
1
A
답변
4
예에 대한 들으. 외래 키 제약 조건은 참조 무결성을 유지합니다. 이는 데이터가 안정적이고 높은 품질을 보장하도록하는 주요 교리입니다. 그렇지 않으면 people_address 테이블이 people 테이블에없는 people_id 값을 참조 할 수 있고 고아가 될 수 있습니다. 외래 키 제약 조건은 그러한 일이 일어나지 않도록 방지합니다.
그래서 해보십시오. 정말 좋은 이유가 없습니다. ;
CONSTRAINT FOREIGN KEY (people_id)를 추가 people_email 표는 DELETE CASCADE ON 사람들 (ID)를 참고 문헌 ALTER:
같은하여 people_email 테이블에 다음과 같은 외래 키를 정의
이는 해당 테이블의 people_id가 people에 존재하지 않는 레코드를 people_email에 입력 할 수 없다는 것을 의미합니다. 또한 people의 부모 행을 삭제하면 people_email에서이를 참조하는 행이 자동으로 삭제됩니다.
개인적으로 하위 테이블에서 수동으로 모든 행을 삭제하고 계단식 삭제를 사용하지 않는 것이 좋습니다. 그것은 응용 프로그램 dev에 약간의 작업이지만, 그것은 나를 더 안전하게 느끼게하고 또한 잠금을 제어하고 쿼리가 가능한 한 효율적임을 보장합니다.
관련 문제
- 1. 외래 키 문제 - mysql
- 2. MySQL 외래 키 문제
- 3. Mysql 외래 키 딜레마
- 4. MySQL - 고유 외래 키
- 5. MySQL 외래 키 질문
- 6. 테이블 외래 키에 대한 MySQL 외래 키
- 7. MySQL 일부 외래 키 제거
- 8. 전체 테이블을위한 mysql 외래 키
- 9. 외래 키 및 MySQL 오류
- 10. 기존 데이터의 MySQL 외래 키
- 11. MySQL Workbench의 외래 키 처리
- 12. 외래 키 생성에서의 MySQL 구문
- 13. mysql 외래 키 엔트리를위한 복수 키
- 14. NHibernate에 외래 키 내가 가지고
- 15. 자체 참조 테이블 열을 외래 키로 설정해야합니까?
- 16. mysql 삭제 및 외래 키 제약
- 17. MySQL : 두 부모를 참조하는 외래 키
- 18. MySQL 조건부 드롭 외래 키 스크립트
- 19. 외래 키
- 20. mysql 데이터베이스에서 외래 키 값을 업데이트하는 방법
- 21. 존재하는 참조가있는 경우에도 MySQL 외래 키 오류
- 22. MySQL의 외래 키 문제는 여기에 외래 키 또한 뭐가 문제
- 23. MySQL 외래 키 제약 조건, 캐스케이드 삭제
- 24. MySQL : 많은 조인 또는 추가 외래 키?
- 25. 다른 데이터베이스에있는 테이블의 MySQL 외래 키?
- 26. 장고가 MySQL 백엔드 용 외래 키 만들기
- 27. MySQL 외래 키 자동 생성 이름이 결정적입니까?
- 28. PHP에서 MySQL 외래 키 제약 조건을 무시하십시오.
- 29. 외래 키
- 30. 외래 키 - 일시적으로 우회?
내가 무엇을 설정해야할지 모르겠습니까? 예. people_id를 people_id로 만들고, 외래 키를 db.people.id에 연결하고 계단식으로 업데이트 및 삭제 하시겠습니까? 사람들이 지울 때 주소가 삭제되기를 원합니다. 사람들이 사람들을 업데이트 할 때 사람들이 주소를 편집하는 것 외에는 주소에 영향을 미치지 않을 것입니다 ... – 1myb
@ spencer-lim 귀하의 질문에 따라 답변을 업데이트했습니다. – squawknull