가장 좋은 옵션은 0과 1입니다 (숫자-다른 대답은 공간 효율을 위해 CHAR 로 0과 1을 제안 하지만 나에게는 너무 꼬임입니다). NOT NULL과 검사 제한 조건을 사용하여 내용을 해당 값으로 제한합니다. (열이 널 입력 가능 해야하는 경우 처리하는 부울이 아니라 세 개의 값을 가진 열거입니다 ...)
0/1의 장점 :
- 언어 독립적. 모두가 사용한다면 'Y'와 'N'은 괜찮을 것입니다. 그러나 그들은하지 않습니다. 프랑스에서는 'O'와 'N'을 사용합니다 (내 눈으로 이것을 보았습니다). 핀란드에서 'E'와 'K'를 사용하는지 여부를 확인하도록 프로그래밍하지 않았습니다. 의심 할 여지없이 그보다 똑똑하지만 확실하지는 않습니다.
- 널리 사용되는 프로그래밍 언어 (C, C ++, Perl, Javascript)의 실습에 적합
- 응용 프로그램 계층 (예 : 최대 절전 모드)으로 더 잘 재생
- 예를 들어, 얼마나 많은 바나나가 먹을 수 있는지 또는 심지어
select sum(is_ripe) from bananas
는 먹을 수 있는지를 알기 위해 더 간결한 SQL로 연결됩니다.select count(*) from bananas where is_ripe = 'Y'
select sum(case is_ripe when 'Y' then 1 else 0) from bananas
'Y'/ 'N'의 장점 :
- 0/1보다 적은 공간을 차지합니다
- 오라클이 제안한 것이므로 일부 사람들이 더 익숙한 것일 수도 있습니다.
다른 포스터는 성능 향상을 위해 'Y'/ 널을 제안했습니다. 당신이 한 경우 입증 그런 다음 성능, 공정 충분히 필요하지만, 덜 자연 (쿼리하게하기 때문에, 그렇지 않으면하지 않는 것이 some_column is null
대신 some_column = 0
)과 왼쪽에 당신이 존재하지 않는 레코드 불성실 conflate 것입니다 가입 할 수 있습니다.
wall
부울을 사용할 때 오라클이 데이터 유형을 가지고 있기 때문에 머리를 부술 수 있기를 바랍니다 .