> mysql을 써서(아파치,php)회원 관리를 하고자 합니다.
> 5,6개의 사이트를 연합하는 형식입니다.(새로 제작)
> 모든 사이트는 한 ID로 통과되어야 하고
> 공통적으로 5개정도의 항목이 겹치고(ID,P/W,메일등)
> 각 사이트에서만 쓰일 5개 정도의 항목이 있습니다.
> 물론 서로 참조할 일도 생기고, 늘어날 일도 생기겠죠.
> 결국 총 5+(5*5)=30개 정도의 항목이 필요한거죠.
> 이경우 ID정도를 Primary Key로 주고 6개의 별도의 테이블을
> 생성하는게 나을까요, 아님 한 테이블에 몰아넣는게 나을까요.
>
> 두서없는 질문이지만 제가 경험이 없어 몹시 고민되는터라...
> 미리 감사드립니다.
그런 일을 많이 겪게 되지요. 그것 때문에 DB modeling이 중요한 것입니다.
원칙은 당연히 분리해야 합니다. 같이 합할 경우 space loss가 많이 생기기 때문이지요. 그리고 서로를 foreign key로 연결해야 합니다. 하지만 아쉽게도 MySQL에서는 지원되지 않습니다.
할수 없이 프로그램상에서 프로그램머가 책임지고 서로 변경해 주는 수 밖에 없습니다.
만약 정 그렇게 복잡한게 싫으면 각각의 field를 varchar로 선언하시고 (이것은 공간손실을 최소화 하기 위해서) 한꺼번에 통합하셔도 됩니다.
30개정도의 필드에서는 그렇게 많은 space loss가 예상되지는 않기 때문입니다.
이것은 어찌 보면 MySQL의 한계라고 생각됩니다.
|