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 31266 게시물 읽기
No. 31266
아주 기초적인 데이베이스 테이블 관련 질문입니다
작성자
초보자입니다
작성일
2019-11-20 12:07ⓒ
2019-11-20 12:08ⓜ
조회수
146

 안녕하세요.

프로젝트를 진행 중에 궁금한 점이 있어 질문드려봅니다.

프로젝트는 '예약' 관련 주제입니다.

1. 하나의 Table에 모든 사람들에 대한 예약한 정보를 저장하는게 나은 건지(약 100명이면 1개의 Table)

2. 모든 사람들의 각 사람들에 대한 예약한 정보를 담는 그 사람만의 고유한 Table을 만드는 것이 나은 건지(약 100명이면 약 100개의 Table)

궁금해서 질문드려봅니다.

 

사람들이 많을 수록 1의 경우 select의 시간이 오래 걸릴 것 같고,

2같은 경우는 select를 빨리 검색할 수 있으므로(그 사람만의 고유한 Table에 바로 접근할 수 있으므로),

2가 더 좋아 보이는데

12 둘 중 뭐가 더 좋은 방법인지 확실히 모르겠습니다.

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

저라면, 

고객은 어떤 상품을 예약을 한다는 가정하에, 

한 고객은 여러 상품을 예약할 수 있을 것입니다. 

이러한 경우 

[고객정보] - [예약] - [상품] 

각각을 테이블로 구현하면 됩니다. 

데이터는 검색뿐만이 아니라 무결성도 중요합니다. 

고객-예약-상품을 하나의 테이블로 만든다면, 

키는 어떻게 할건지 부터 해서, 보통은 일련번호 하나 따는 방식을 선택하는데 

시간이 지날수록 select 를 상당히 많은 조건으로, group by 조회로 하게 되죠. 

테이블은 더 거대화되고 오히려 부하가 더 클 수 있습니다. 

데이터를 정규화하게 되면, 데이터 사이즈가 더 줄수도 있고 

더 효율적일 수 있습니다. 

lucky님이 2019-11-20 14:01에 작성한 댓글입니다.
이 댓글은 2019-11-21 11:53에 마지막으로 수정되었습니다. Edit

보통 정규화를 할 수록 좋습니다.

데이터 량이 매우 많은 경우는 index, 파티셔닝 등 방법을 고려합니다.

데이터 량이 매우 많은 경우는 그렇게 흔하지 않습니다.

 

1처럼 만들어 사람에 대한 index를 추가합니다.

2처럼 만들려면 새로운 사람이 들어올때마다 테이블을 생성해 줘야 하는데

사용자가 극히 제한적 (**명 미만)이고 사용자별 데이터가 매우 많은 경우 고려해 볼 수도 있습니다.

(일반적인 경우는 아니죠) 

박인호(paerae)님이 2019-11-20 16:32에 작성한 댓글입니다.
이 댓글은 2019-11-20 16:38에 마지막으로 수정되었습니다.
[Top]
No.
제목
작성자
작성일
조회
312681:n구조의 쿼리 문의드립니다. [3]
기훈
2019-12-03
61
31267기초 데이터베이스 테이블 질문 [2]
김상훈
2019-11-26
119
31266아주 기초적인 데이베이스 테이블 관련 질문입니다 [2]
초보자입니다
2019-11-20
146
31265하나의 프로시저에서 DECLARE ... HANDLER 사용 시 다수의 SQLEXCEPTION 사용이 가능한지요?!
김성환
2019-11-19
95
31264PK와 동일한 인덱스키 지정이 필요할까요?? [1]
김종수
2019-11-16
118
31262mysql의 데이터를 웹서버(apache)로 가져오는데 한글이 제대로 안나와요 [1]
디디
2019-10-16
251
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2019 DSN, All rights reserved.
작업시간: 0.070초, 이곳 서비스는
	PostgreSQL v11.5로 자료를 관리합니다