우선 유저 테이블이 있습니다.
유저는 두가지 소속을 가지고 있습니다. 학교를 예를 들자면 학교, 반에 대한 소속입니다.
-user table-
id
name
school_code
class_code
이런식으로 유저 필드가 구성되어 있습니다.
유저가 사용을 하다 보면
work 테이블에 추가가 됩니다.
-work table-
user_id
code
.
.
그리고 work 테이블에 추가된 한 레코드에 대해
work_detail이라는 테이블에 여러개의 레코드가 추가가 됩니다.
-work_detail-
work_code
.
.
.
어느 한 유저의 work_detail 이라는 부분의 누적값( sum, count 등.. )을 사용하게 되면..
user 테이블의 id값을 가지고 work를 조인하고.. 거기에 다시 work_detail을 조인시켜서 사용해야 됩니다.
또.. 한 학교나 반에 대해서 각 유저의 누적값을 가져오려면
상당히 많은 양의 레코드가 조인을 하게 되는데요..
하루에 생성되는 work_detail의 레코드 수가.. 대략 5천에서 1만개 정도가 됩니다.. 추후 더 증가 할수도 있습니다.
조인시 속도가 많이 느려지지는 않을까요?
느려진다면.. 누적값 구하기에 대한 해결책으로는 어떤게 있을까요?
제 생각으로는.. work나, work_detail 테이블에 join과 관련된 필드(user_id, school_code, class_code)를 추가시켜놓는
방법 밖에는 모르겠는데...
답변 부탁드립니다. |