현재 활동 유형에 따라 다른 테이블을 참조하는 단일 활동 테이블이 있습니다.MySQL에서 사용자 활동 테이블을 구성하는 방법은 무엇입니까?
id | type | user_id | source_id | misc_id | date
유형의 열은 소스 ID가 행동의 유형으로 테이블 ID 상대가 들어 사용자가 수행 한 활동의 종류 (다음, 상태 등 친구가 좋아) 저를 알려줍니다.
이것은 사용자 활동 스트림에 대해서는 잘 작동하지만 유일한 문제는 관련 테이블에 더 이상 존재하지 않는 행에 대해 수행 할 작업을 파악할 수 없다는 것입니다.
예. 사용자는 상태를 작성한 다음 삭제하거나 사용자가 나중에 데이터베이스에서 삭제 된 누군가와 친구가됩니다.
활동이 단일 유형에 비례하는 경우, 행을 제거하는 외래 키 제약 조건을 추가 할 수 있습니다. 하지만 다른 테이블과 관련이 있기 때문에 어떻게해야할까요?
이로 인해 어떤 문제가 발생합니까? – Bulat
다른 테이블에 더 이상 존재하지 않는 결과를 반환하기 때문입니다. ... ... 또는 샘이 좋아하는 샘과 친구가되었다 을 : 내가 활동의 유형에 switch 문을 실행하고있어 행이 존재하지 않을 경우이 같은 출력을 얻을 것이다 점이 빈 공간. –
음, 날짜 유형의'Reversed' 필드를 추가하고 필터하십시오. SQL을 표시하면 솔루션을 찾는 것이 더 쉬울 것입니다. – Bulat