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
운영게시판
최근게시물
PostgreSQL Q&A 7192 게시물 읽기
No. 7192
bool형을 쓰는 이유는 무언가요?
작성자
post초보
작성일
2007-07-30 15:57
조회수
5,134

그냥 char나 varchar로 0 또는 1로 flag를 주면 안 되는건가요?

왜 bool형이 필요한걸까요? 답변 부탁드립니다.(__)

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

그냥 제 생각입니다.


물론 smallint 혹은 char(1) 을 이용해볼수도 있습니다만.. 

0, 1 만을 사용하기 위해선 check constraint 를 걸어야 합니다.


그럼 처리가 더디지않을까요?


물론 bit 타입도 있습니다만...


tyro님이 2007-07-30 22:27에 작성한 댓글입니다. Edit

기존 자료의 호환성 때문입니다. 


그리고, 참,거짓 이라는 실세계에서 두 값만 가지는 자료가 어면히 있다면, 

그것을 담을 수 있는 자료도 있어야한다는 것이 dbm 쪽 전통이었고. 


요즘 젊은 사람들은 integer 형, (int4 형)이 인덱스에서도 자료처리 능력에서도 제일 빠르기 때문에, 

저장공간의 크기에 연연하지 않고, 이 자료형으로 처리하는 경우를 종종봅니다. 


뭐가 나은지는 모르겠습니다. 


dba가 해야하는 몫, 그들의 능력 가운데 하나가, 

실세계 자료를 데이터베이스 자료로 어떻게 구현할 것인가에 대한 노련함이거든요.


자신이 생각하기에 가장 타당한 자료형을 선택하는 것도 결국 경험이더라구요.


이 자료가 어떻게 select 될 것인지, 어떻게 인덱스를 만들 것인지... 등등 

그에 따라서 실세계에서는 불린형인데, 데이터베이스는 정수형으로 처리한다. 아니면, 그 반대로 한다가 결정이 될 듯합니다. 


프로그래밍을 하다가 보면, 정수형으로 불린형을 대체할 수 있음에도 불구하고, 

많은 사람들이 아직도 불린형을 많이 쓰죠. 그 나름대로 이유가 있어서일겝니다. 

그거하고 마찬가지입니다. 


김상기(ioseph)님이 2007-07-31 17:04에 작성한 댓글입니다.

boolean 용으로 만든 integer 일 경우 하더라도

index 를 사용할 일은 없을거 같습니다.

어차피 50% 가 차지하고 (한쪽으로 쏠려 있는 자료라면 틀리겠지만) 있으니 index 의 의미가 없어질지도 모르죠..


저 같은 경우 처음엔 boolen 으로 사용하다 요즘은 귀찮아서 smallint 를 자주 씁니다.

boolean 이 많을 경우는

차라리 한대 묶어서 integer 하나로 사용하기도 합니다.

31개는 사용할수 있으니깐요..

tyro님이 2007-07-31 19:04에 작성한 댓글입니다. Edit
[Top]
No.
제목
작성자
작성일
조회
7195셀렉트시 조건에 따른 필드값 변경?.. [1]
moons
2007-08-09
5418
7194조회만 가능한 계정을 만들고 싶습니다. [1]
사이베이스가 싫어
2007-08-07
5137
7193MS-SQL에서 OLE DB로 PG를 연결하는 방법이 있습니까? [1]
김명범
2007-08-01
5011
7192bool형을 쓰는 이유는 무언가요? [3]
post초보
2007-07-30
5134
7191timestamp 값에 쓰레기 값이 붙습니다. [2]
조성찬
2007-07-29
5233
7190schema(namespace) 는 무엇인가요?? 어떤 건지, 어떻게 사용하는지 알려주세요 [2]
Sly
2007-07-28
5018
7186Postgres 문서 [1]
나그네
2007-07-27
5391
Valid XHTML 1.0!
All about the DATABASE... Copyleft 1999-2024 DSN, All rights reserved.
작업시간: 0.028초, 이곳 서비스는
	PostgreSQL v16.2로 자료를 관리합니다