database.sarang.net
UserID
Passwd
Database
DBMS
ㆍMySQL
PostgreSQL
Firebird
Oracle
Informix
Sybase
MS-SQL
DB2
Cache
CUBRID
LDAP
ALTIBASE
Tibero
DB 문서들
스터디
Community
공지사항
자유게시판
구인|구직
DSN 갤러리
도움주신분들
Admin
운영게시판
최근게시물
MySQL Q&A 27021 게시물 읽기
No. 27021
이런 상황에 DB 테이블은 어떻게 만들어야 할까요?
작성자
김선재
작성일
2007-09-12 00:24
조회수
2,145

안녕하세요?


아무리 아무리 생각해봐도 답이 나오질 않아 이렇게 손을 내밀어 봅니다 ^^


헬스 클럽 회원관리 비슷한 프로그램을 만들고 있습니다.


여기에서 회원 각 각의 날마다의 운동 내역을 DB에 저장하려고 합니다.


예를 들면 ,


홍길동씨가 2007.09.01 에는 팔굽혀펴기 10회, 턱걸이 20회, 달리기 10분

                2007.09.02 에는 팔굽혀펴기 20회, 턱걸이 30회, 달리기 20분

                                                  .

                                                  .

                                                  .

                                                  .

                                                  .

                                                  .

                                                  .


이런식 입니다.


이 경우 제가 어려워 하는 점은 이 내용을 하나의 테이블에 넣으려니 용량이 너무 크다는 점입니다.


회원 100명만 되도, 하루에 100개 씩 늘어가니까요 ^^;;;


그래서 회원 1명 당 하나씩의 테이블을 만들어 주려니...


이 경우 운동내역에 관한 테이블이 응용프로그램이 실행되는 중간에 동적으로 생성된다는 것입니다.


그렇게 되면, 제약조건 명시의 경우에 문제가 생길 것 같은데요...


흠.. 이런 상황에서는 DB 를 어떻게 설계해야 할까요?? 조언 부탁드리겠습니다 ^^;

이 글에 대한 댓글이 총 3건 있습니다.

회원: 100명  * 365일 = 36500


3만건밖에 안됩니다 1년해도


DB가 괜히 있는게 아니죠


퍼포먼스는 로우수도 중요하겠지만


정작 원하는 로우수에 거의 의존합니다.(쿼리와 인덱싱 전략이 필요하죠)




테이블을 나누는것보다 하나로 모는게 이상황에선 맞습니다.


그리고 로우레벨락이 되는 innodb로 사용하시면


별 탈없는 내용일것같습니다

김상익님이 2007-09-12 09:37에 작성한 댓글입니다. Edit

답변 감사드립니다. ^^


음.. 물론 건수도 제가 내켜하지 않았던 것도 있지만,


그렇게 될 경우 search 를 할 때 너무 비효율적이 되지 않을까 하는 고민도 들었습니다.


예를 들면 하나로 모으게 되면 회원 100명의 정보가 모두 들어가 있고,


그 중 '홍길동의 YYYY년 MM 월 DD 일' 의 운동 내역을 뽑는다고 했는 경우 입니다.


음.. 이정도도 상관이 없는 건가요? 


제가 아직 학부생이라 부족한 것도, 궁금한 것도 많네요 ^^


그리고 DBMS 는 mysql 를 쓰고 있습니다.

김선재님이 2007-09-12 12:12에 작성한 댓글입니다.
이 댓글은 2007-09-12 12:13에 마지막으로 수정되었습니다. Edit

저도 잘 모르지만..


말씀하신 검색조건과 db에는 테이블은 한개로 하시는 편이 좋다고 생각합니다.

(사실은 검색조건과 디비에 관계없이 이경우는 하나 혹은 두개 정도면 된다고 생각합니다.)


김상익님 말씀대로 만드시면 될겁니다.


테이블은 설계에 따라서 하나가 될수도 두개가 될수도 있겠지만.


이경우는 많아도 한두개정도 테이블이면 될듯합니다.


테이블 설계가 좀 힘드시다면 복잡하게 생각하지 마시고


하나로 만드시면 될듯합니다.


적어도 다른 사람이 보면 비정규화 해서 테이블 하나로 했나보다 하고


생각할 수 있겠지만. 회원 수 만큼 


테이블을 만드는 방법은 충분히 문제가 될 소지가 있으니


피하시는 편이 좋다고 말씀드리고 싶습니다.


참고로 정규화를 좀 더 하면


회원 테이블과


운동 내역 테이블


정도 두개 정도면 되지 않을까하는





그림그림(min3825)님이 2007-09-12 20:40에 작성한 댓글입니다.
이 댓글은 2007-09-12 20:49에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
27024[질문] 덤프 문의 드립니다. [1]
남상식
2007-09-14
1770
27023mysql 커넥션과 서버과부화.... [1]
연습쟁이
2007-09-13
2070
27022mysql 4.1 에서 show database 할때
헐랭이
2007-09-12
1904
27021이런 상황에 DB 테이블은 어떻게 만들어야 할까요? [3]
김선재
2007-09-12
2145
27020mysql 5.0 데이타 디렉터리 변경 관련
김영민
2007-09-11
1966
27018mysql cluster replication 의 속도 관련 질문입니다.
gundeky
2007-09-10
2584
27015master-master 리플리케이션 구성의 신뢰도? [3]
dba
2007-09-10
2701
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.018초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다