2012-05-17 12 views
0

을 줄이기 위해 열 이 외래 키 USER_ID.이의 예를 테이블 <code>Post</code> 및 <code>Post</code> 테이블에서 <code>User</code><br> 를 들어, 두 개의 테이블을 살펴 보자 복잡한 쿼리

Post
-id
-user_id
자격증 신청인

User
-userid
, -username

포스터의 사용자 이름을 얻으려면 join 쿼리를 사용하고 User 테이블에서 가져와야합니다.

Post 테이블에 여분의 열을 추가하여 SQL 쿼리를 단순화하기 위해 포스터의 사용자 이름을 저장하는 것이 쉽지 않을까요? 이 경우 Post 테이블은 user_id 사용자 이름 열 ( 사용자 이름 열은 중복 됨)이지만 포스터 사용자의 사용자 이름을 가져 오는 쿼리가 없게됩니다.

은 무엇 최선의 선택이되면, DB에 중복 데이터를 추가 Post 테이블 여부

답변

1

보기 만들기는 옵션입니다. 그리고 ust는 해당보기를 쿼리합니다. 그러나 msql의보기는 한 번 수행 한만큼 성능 측면에서 많은 이점을 제공하지 않습니다.

그냥 조인을 실행하는 것이 좋습니다. 최종적으로 저장할 데이터의 양에 따라 파티셔닝 테이블 등등과 같은 성능 향상을위한 다른 방법을 고려해야 할 수도 있습니다. 그러나 이는 다운 라인에 대한 것입니다

0

에 사용자 이름을 저장하는 것은 좋은 선택이 아니다.

정말로 선택 쿼리를 단순화해야하는 경우 해당 사례에 대한보기를 만듭니다. 그렇게하면 데이터가 한 곳에 있으므로 사용자는 매번 가입 할 필요가 없습니다. 그러나 단순한 참여는 실제로 큰 문제가 아닙니다.

관련 문제