테이블 분리 여부
본문
예) 단지 예시 입니다.
ID | NAME | TEL ~ ~~~~~~~~~~ | 필드1 | 필드2 | 필드3
----------------------------------------------------
~
~
~
참고: 레크드가 많은 편입니다.
이런 테이블에서 필드1,2,3 필드가 TEXT 형식으로 많은 글자수를 가지고 있습니다.
한개의 테이블로 인한 무리를 줄이고자, 테이블을 분리 해 뒀다가 필드1,2,3 필드가 쿼리할 필요가 있을때 JOIN 해서 사용합니다.
질문1: 그냥 분리하지 않고 SELECT 시 필드를 잘 지정해서 사용하면 괜찮지 않을까요?
질문2 : 그냥 1개 테이블, 또는 2개,3개의 테이블 분리 기준은 어떻게 두고 설계하나요?
답변 3
1
프로그램을 어떻게 짜냐에 따라서 분리를 하나 안하나 차이는 없을듯합니다.
텍스트라면 보통 리스트 가져올때 *를 지양해야 합니다. left(텍스트필드, 10)이렇게 잘라서 가져와야 합니다.
전체를 가져오면 그에 따른 부하가 크기 때문입니다.
이런 부분을 프로그램 코딩할때 고려하면 문제가 없을거라 생각합니다.
2
테이블 분리 기준은 정규화에 따라 다릅니다. 보통 null데이터가 많으면 분리를 합니다.
멤버와 멤버상세의 관계같은거죠. 멤버는 필수지만 멤버상세는 입력하시는 회원은 별로 없기에
1. 분리하지 않고 쓰시는게 좋을거같아요.
2. 1대n으로 연결이 필요할때 나누거나, 그누보드 게시판테이블같이 이미 있는 테이블에 필드추가 않하고 싶을때? 나눕니다.(개인적으로요)
JOIN이나 INDEX가 많다면 분리 안 하시는 것 낫고요.
몇 개 안 되면 테이블 분리하고 JOIN을 사용하시는 것 낫다고 생각합니다.
테이블 분리할 때 Join의 한계성도 따져보시고 정하시면 좋을 것 같습니다.
DB 설계는 전문가 영역이라고 생각합니다.
ERD 생성이 먼저입니다.
드린 댓글 PHP 전문가 아닙니다. 그러니 더 좋은 말씀 추가해 주세요.
감사합니다.