내 데이터 구조입니다.CakePHP의 데이터베이스 설계
연관에 외래 키를 사용했습니다. 예를 들어 각 상점에는 market_id가 있습니다.
회사 레코드를 삭제하면 올바른 지역도 삭제됩니다. 그러나 관련 시장, 상점 및 직원을 모두 삭제해야한다는 생각이 들었습니다. 또는 마켓을 삭제 한 경우 모든 상점 및 직원을 삭제해야합니다.
이 작업을 수행하는 가장 적합한 방법은 무엇입니까?
- 테이블에 외래 키를 추가 할 수 있습니까? 예를 들어, 상점에는 market_id 외에 region_id 및 company_id가 필요합니까?
안녕하세요, 답장을 보내 주셔서 감사합니다. 이것은 한 수준에서 효과가 있습니다. 나는 company hasMany Regions 모델에 의존하여 추가했다. 이로 인해 예상되는 결과가 생성되고 관련 지역이 삭제되었습니다. 그러나 시장, 상점 및 직원은 삭제되지 않았습니다. (나는 모든 모델에 종속성을 추가했다). 다음으로 Company hasMany Markets를 Company 모델에 추가하려고 시도했습니다. 그 결과 다음과 같은 오류가 발생합니다. "치명적인 오류 : 클래스 선언이 중첩되지 않을 수 있습니다."삭제하는 회사를 기반으로 Employee to Store to Market에서 Market to Market으로 여러 테이블에 걸쳐 재귀 적 삭제가 필요합니다. – Jose
알았어! CompaniesController.php의 delete 호출은 cascade를 true로 설정해야합니다. 이것은 $ this-> Company-> delete ($ id, true)와 같습니다. 또한 다른 레벨에서 시작하기 위해 마켓에서 삭제를 시작하면 연결된 상점 및 직원을 삭제하기 위해 계단식을 추가 할 것입니다. – Jose