본문 바로가기
MySql

MySQL MYSQL : 사용자-프로필 세부 정보 테이블 설정-모범 사례

by 베이스 공부 2020. 11. 4.
반응형

일반 사용자 테이블 "user"(user_id / user_email / user_pwd / etc) 옆에 프로필 정보를 저장하는 가장 좋은 방법은 무엇입니까?

"user"와 같은 사용자 테이블에 필드를 추가할까요?

(user_id/user_email/user_pwd/user_firstname/user_lastname/user_views/etc)

또는 "프로필"이라는 다른 테이블을 만듭니다.

(profile_id/user_id/user_firstname/user_lastname/user_views/etc)

아니면 속성 정의가있는 테이블과 해당 값을 저장하는 다른 테이블로 이동합니까?

필드를 쉽게 추가하고 제거 할 수 있으므로 마지막 것이 가장 유연하다는 것을 알고 있습니다. 그러나 큰 사이트 (사용자 5 만 명 이상)의 경우이 속도가 빠를까요?

 

해결 방법

 

접근 방식에서 고려해야 할 사항

사용자 표에 사용자 프로필 저장

User_Profile에 사용자 프로필 저장 표 1-1 사용자와의 관계

사용자 프로필을 표의 속성 및 값으로 저장

* 예 : 가능한 옵션을 저장할 테이블, user_id, option_id 및 값을 저장할 테이블 *

내 인상은 대부분의 웹 사이트가 두 번째 방법을 사용하고 두 번째 테이블에 프로필 정보를 저장한다는 것입니다. 대부분의 큰 웹 사이트에서 일반적으로 데이터베이스 (twitter, facebook)를 비정규 화하여 쓰기 성능을 저하시키면서 읽기 성능을 향상시킵니다.

프로필 정보를 두 번째 테이블에 보관하는 것이 50,000 개의 레코드를 볼 때 갈 방법이라고 생각합니다. 최적의 성능을 위해서는 캐시가 효과적으로 작동 할 수 있도록 많이 쓰여진 데이터를 읽기가 많은 데이터와 분리하여 보관하려고합니다.

 

참조 페이지 https://stackoverflow.com/questions/3889797

 

 

반응형

댓글