2010-01-06 2 views
0

저는 여러분에게 cakephp 전문가를위한 다소 복잡한 질문이 있습니다.다른 테이블에 ID의 존재를 기반으로 모델 데이터를 숨기기

기본적으로 "위치"라는 db 테이블을 만들었습니다. 매월이 표를 클라이언트의 CSV 형식으로 나에게 보냅니다. 불행히도,이 테이블을 업데이트하는 대신, 그것을 비우고 모든 레코드를 다시 가져와야합니다. 불행히도이 테이블을 전혀 변경할 수는 없습니다.

사용자는 이러한 레코드의 표시를보고 특정 레코드를 숨길 수 있습니다. 이 "숨겨진"속성은 지속적이어야하며 모든 레코드를 한 달에 한 달 동안 보존해야합니다.

나는 어제이 모든 작업을했습니다. 내가 한 일은 location_properties (컬럼은 id (int), location_id (foreign key), is_hidden (boolean))라는 별개의 테이블을 생성하는 것이다. 이 레코드를 보여줄 때 단순히 "is_hidden == true"인지 확인합니다.

이것은 모두 훌륭하고 (작업중 이었지만) 좋았지 만, 내 상사가 작품을 꽉 채웠다. 그는 더 효율적이기 때문에 테이블에서 "is_hidden"열을 삭제하라고했습니다. location_id의 존재 여부를 간단히 확인하여 숨기거나 표시 할 수 있어야합니다.

매우 간단하지는 않습니다. 아무도 내가 이걸 어떻게 풀 수 있는지 알아? 나는 내가 생각할 수있는 모든 것을 시도했다.

답변

0

귀하의 상사가 잘못되었습니다.

열을 너무 많이 추가하면 매월 위치를 삭제하고 다시 가져 오는 것보다 효율적입니다.

그는 효율성이 떨어 졌다고 말 했습니까? 실제로 성능이 너무 많이 떨어지는 지 확인하기 위해 실제 벤치 마크를 수행 했습니까?

언뜻
+0

물론 아닙니다. 나는이 방법으로 그것을하는 것이 미친 것을 알고있다. 그리고 사실 나는 이것 위에서 하루 종일 일하고 있었고, 그가 원하는 방식으로 그것을 성취 할 수 있다고 믿지 않는다. –

0

I 2 개 솔루션 참조 : 오른쪽 가입

1) 조건 배열

2) 변경 가 입력 가입

('Location.id'=> 'NULL NOT')를 추가를

이 도움이 되었기를 바랍니다.

관련 문제