테이블 설계 시 정규화를 하다보면 테이블이 여러개로 쪼개지는 경우가 있다.

이렇게 쪼개진 테이블들은 다시 JOIN을 해서 조회를 하게 되는데,

여기서 테이블을 작은단위로 까지 쪼개면 직관적으로 관리가 가능할 것으로 생각되지만

중요하게 고려해야할 점이 있다.

바로, 데이터간의 동기화이다.

A, B, C의 테이블이 있다고 가정하자. 이때, A와 B, C를 JOIN하여 사용하게 되는데

A의 정보가 변경이 되었으면 B, C에 테이블에 JOIN된 키의 정보도 변경해주어야하기 때문에

데이터를 동기화 하지 않는 이상은 데이터의 정합성이 깨질 확률이 커진다.

그렇기 때문에 정규화를 해서 잘게 테이블이 쪼개긴하지만, 굳이 쪼갤필요가없는 테이블은 합쳐서 관리하는 것이 관리상 효율적이다.

만약, 위의 예시처럼 동기화가 제대로 되지않으면 시스템의 오류이고 관리자가 잘못했다고 이야기하기에는 어려운상황이다.

또한, 관리자는 작업을하며 "왜이렇게 시스템을 어렵게만들었어"라고 할것이다.

명확하게 분리되어야하는 이유가없다면 반드시 테이블을 합쳐서 사용하자.

+ Recent posts