2011-11-02 4 views
0

이 문제와 관련하여 가장 좋은 해결책은 무엇입니까 궁금한데 :SELECT 요청 시간과 관련하여 가장 좋은 솔루션은 무엇입니까?

나는 기사가 있고 기사는 범주에 속합니다. 사용자 정의 및 시스템 정의 (예 : "받은 편지함", "휴지통"등)의 두 가지 유형이 있습니다.

따라서 각 시스템 정의 범주마다 하나의 항목 만 있어야하며 모든 기사 모든 사용자가이 카테고리에 연결되거나 사용자를 만들 때 모든 시스템 정의 카테고리를 만들어야하며 사용자에게이 카테고리를 연결해야합니까?

첫 번째 해결 방법은 각 시스템 정의 범주에 많은 기사를 생성 할 것이며 두 번째 솔루션은 카테고리에 많은 "중복"항목을 생성하게됩니다. 가장 좋은 솔루션은 무엇입니까?

답변

0

선택 사항입니다. 두 접근법 모두 장단점이 있습니다. 두 번째 솔루션은 당신의 선택 문을 단순화

WHERE (category.type = 'SYSTEM' OR category.user_id = :USER_ID) 

: 첫 번째 솔루션으로 가면 , 당신의 선택 문이 유사한 WHERE 절을해야합니다

WHERE category.user_id = :USER_ID 

두 번째 솔루션은 만들 것 사용자를 추가하기가 더 복잡합니다. 당신은 사용자에 대한 시스템 정의 카테고리를 생성해야합니다

INSERT INTO CATEGORY (user_id, category_name, ...) SELECT :USER_ID, system_category, ... FROM SYSTEM CATEGORY; 

을 그리고 당신은 새로운 시스템 범주를 추가하는 경우 모든 사용자를 삽입해야합니다.

관련 문제