테이블 설계 관련 질문 0 1 1,480

by 디비맨 [DB 모델링/설계] 테이블 설계 [2015.02.16 07:36:10]


DB쪽은 완전 초보라 질문 내용 자체가 이상할 수도 있습니다만은..

 

인터넷카페를 생성하고 글을 올리는 형태의 테이블을 만들고 있습니다.

여기까지는 그냥 카페 테이블(seq[자동증가], 이름), 카페게시물 테이블(카페 테이블seq, seq, 글내용, 유저seq)

이런식으로 하려고 했는데요.

제가 고민하는 이유는 서비스 자체에서 제공하는 공식 카페가 있어서 입니다.

서비스에서 자체 제공하는 공식카페(10개 이하)와 사용자가 직접 만드는 카페 두개로 나뉘어 집니다.

제가 우려스러워 하고 있는 부분은

1. 공식카페와 사용자가 직접 만드는 카페들의 데이터 종류의 차이가 약간 있음.

공식카페에는 (seq, 이름, 정렬위치)정보가 있어야 하지만사용자가 직접 만드는 카페는 (seq, 이름, 유저seq, 카페설명) 

정보가 필요함.

테이블을 별도로 나눠야 하나? 근데 사용자 카페정보에 유저seq, 카페설명이 필요 없을 수도 있음..(관리자가없음)

그렇게 되면 정렬위치 필드만 다르고 동일.

2. 공식카페는 원래 key값을 자동증가값 대신 직접 문자열로 구분하고자 했음.

사실 자동증가값과 문자열을 쓰는 것의 장단점은 잘 모르겠는데.. 문자열로 쓰는게 뭔가 더 명확해보여서;

3. 카페 테이블을 한개로 쓸 경우.. 공식카페정보를 가져오는데 영향이 있지는 않을까? 사용자 카페들이 늘어나면

공식 카페 데이터를 가져올때 속도에 지장이 있지 않을지.. 어차피 서비스 속도가 느려지는 자체가 문제가 있는것이므로

이런 부분은 상관없을 수도 있다는 생각이 들긴 하지만.. 몇백.몇천개 이상의 사용자카페정보 사이에 10개 이하의

공식카페정보가 듬성듬성 껴있다는 자체가 괜찮은지 하는 생각이 들어서요.

4. 공식카페든 사용자카페든 카페게시물의 테이블의 정보는 완전 동일 (공식카페 구분key값을 문자열로 하는 경우가 아니라면)

 

이렇게 이런저런 이유들로 카페 테이블을 한개로 가져가야될지 두개로 나눠야 될지 계속 고민중인데

어떻게 해야될지 감이 안잡히네요. 도움말씀 부탁드립니다.

by 백면서생 [2015.02.17 10:56:37]

-- 사견을 말씀드리면
-- 상황으로 봐서는 분리를 해도 , 통합을 해도 괜찮을거 같네요.
-- 주로 통합은 정기, 비정기적으로 모델이 늘어날때 많이 하지만 
-- 공식 카페는 그런성질은 아닌거 같고 따로 분리하셔도 상관은 없을거 같네요.
-- USER ENTITY가 사용자와 관리자 통합형태로 되어 구분속성(관리자/사용자)을
-- 가지고 있다면 통합해서 USER SEQ에 관리자 SEQ를 넣어주셔도 될거 같구요.

-- 다만 성능 관점에서 볼때 HOT BLOCK이나 기타 BOTTLENECK현상이  
-- 생길 가능성이 있다면 분리를 생각하시는게 나을듯 하네요.

 

댓글등록
SQL문을 포맷에 맞게(깔끔하게) 등록하려면 code() 버튼을 클릭하여 작성 하시면 됩니다.
로그인 사용자만 댓글을 작성 할 수 있습니다. 로그인, 회원가입